Objective-C App中的iPhone X安全布局区域

时间:2018-05-10 13:00:44

标签: ios objective-c iphone

我正在使用在Objectice-c中编写的应用程序,而不使用storyboard&自动布局。

我在iPhone X中遇到问题(请参见下文)

--- iPhone X ---

iPhone X

--- iPhone SE ---

enter image description here

下面是我写的大胆标题的代码

_topHeaderLabel = [[UILabel alloc] initWithFrame:CGRectMake(30, 20, CGRectGetWidth(self.view.frame)-60, CGRectGetHeight(self.view.frame)* 0.2)];

   _topHeaderLabel.text = @"Please select bank account you want to link";
   _topHeaderLabel.textAlignment = NSTextAlignmentCenter;

我可以看到除iPhone X以外的所有iPhone设备都是完美的UI。请告诉我这里我做错了什么。我无法应用自动布局,因为已经编写了应用程序。

任何想法或建议都会很棒。

1 个答案:

答案 0 :(得分:0)

你的身高有问题,必须

_topHeaderLabel.sizeToFit() 

如果检测设备是X,请检查此项 - > self.view.safeAreaInsets.top 在IPhoneX中试试这个,IPhoneX中的顶部插图是44,但你设置为20,如果你使用navigatioBar它将是88

UILabel*topHeaderLabel = [[UILabel alloc] initWithFrame:CGRectMake(30,self.view.safeAreaInsets.top, CGRectGetWidth(self.view.frame)-60, CGRectGetHeight(self.view.frame)* 0.2)];