解决方案 »

  1.   

    检查mapView的frame有没有设置正确。 建议使用autolayout 添加约束来管理位置
      

  2.   

    我要是你 加个define。h 做判断
    #define iPhone5 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 1136), [[UIScreen mainScreen] currentMode].size) : NO)
    #define iPhone6 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? (CGSizeEqualToSize(CGSizeMake(750, 1334), [[UIScreen mainScreen] currentMode].size) || CGSizeEqualToSize(CGSizeMake(640, 1136), [[UIScreen mainScreen] currentMode].size)) : NO)
    #define iPhone6plus ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? (CGSizeEqualToSize(CGSizeMake(1125, 2001), [[UIScreen mainScreen] currentMode].size) || CGSizeEqualToSize(CGSizeMake(1242, 2208), [[UIScreen mainScreen] currentMode].size)) : NO)
      

  3.   


    iphone 4, 5, 6的屏幕长宽比是不一致的,因此如果使用auto layout,可能会出现不同设备显示效果不同的情况,屏幕下面显示不全,或者有空白。
    一般对于界面元素的控制,我们常通过代码根据不同设备来设置其位置和大小。如果是通过xib来布局的,那么对于某些UI元素我们也需要用代码来动态调整。
    像你这种情况,可以这样解决,假定聊天主视图是 ChatView, 导航栏是NavController,那么你设置聊天视图的高度就可以通过这样来实现以确保UI显示正确:
    在viewDidLoad中这样处理:CGRect rcChatView = ChatView.frame;
    rcChatView.origin.y  = Navcontroller.frame.origin.y + Navcontroller.frame.size.height;
    rcChatView.size.height = [UIScreen mainScreen].size.height - rcChatView.origin.y;
    Chatview.frame = rcChatView;即聊天视图的高度是屏幕高度减去导航栏的高度。
      

  4.   


    iphone 4, 5, 6的屏幕长宽比是不一致的,因此如果使用auto layout,可能会出现不同设备显示效果不同的情况,屏幕下面显示不全,或者有空白。
    一般对于界面元素的控制,我们常通过代码根据不同设备来设置其位置和大小。如果是通过xib来布局的,那么对于某些UI元素我们也需要用代码来动态调整。
    像你这种情况,可以这样解决,假定聊天主视图是 ChatView, 导航栏是NavController,那么你设置聊天视图的高度就可以通过这样来实现以确保UI显示正确:
    在viewDidLoad中这样处理:CGRect rcChatView = ChatView.frame;
    rcChatView.origin.y  = Navcontroller.frame.origin.y + Navcontroller.frame.size.height;
    rcChatView.size.height = [UIScreen mainScreen].size.height - rcChatView.origin.y;
    Chatview.frame = rcChatView;即聊天视图的高度是屏幕高度减去导航栏的高度。
    使用autolayout 就是解决各屏幕尺寸适配的问题。你是依据什么说 “使用auto layout,可能会出现不同设备显示效果不同的情况”
      

  5.   


    iphone 4, 5, 6的屏幕长宽比是不一致的,因此如果使用auto layout,可能会出现不同设备显示效果不同的情况,屏幕下面显示不全,或者有空白。
    一般对于界面元素的控制,我们常通过代码根据不同设备来设置其位置和大小。如果是通过xib来布局的,那么对于某些UI元素我们也需要用代码来动态调整。
    像你这种情况,可以这样解决,假定聊天主视图是 ChatView, 导航栏是NavController,那么你设置聊天视图的高度就可以通过这样来实现以确保UI显示正确:
    在viewDidLoad中这样处理:CGRect rcChatView = ChatView.frame;
    rcChatView.origin.y  = Navcontroller.frame.origin.y + Navcontroller.frame.size.height;
    rcChatView.size.height = [UIScreen mainScreen].size.height - rcChatView.origin.y;
    Chatview.frame = rcChatView;即聊天视图的高度是屏幕高度减去导航栏的高度。
    使用autolayout 就是解决各屏幕尺寸适配的问题。你是依据什么说 “使用auto layout,可能会出现不同设备显示效果不同的情况”
    他的依据就是他自己做的时候约束没有添加对