我有一个UITextView应该消耗屏幕的高度,减去导航栏和键盘的高度(当视图加载键盘时出现)。显然,在4英寸设备上,这意味着文本视图应该稍微高一些。 Interface Builder中是否可以使高度设备依赖?
如果没有,我可以在代码中执行吗?是否可以不使用某些自动布局约束?
答案 0 :(得分:2)
通过使用自动布局约束来实现它会非常容易。是否有任何特殊原因不使用它?
答案 1 :(得分:0)
您需要在代码中执行此操作,您可以在Macor下方使用以检查设备:
#define IS_IPHONE5 ([[UIScreen mainScreen] bounds].size.height == 568)?TRUE:FALSE
然后:
if (IS_IPHONE5 )
{
//textView.frame = ..
}
else
{
//textView.frame = ..
}
是的,你可以使用一些自动布局约束来做到这一点,这是最好的做法,检查这个问题:
答案 2 :(得分:0)
你可以使用支柱和弹簧。但汽车布局是新的热点。
答案 3 :(得分:0)
取消null的回答:
我假设您将此UITextView放在UIViewController中?
您可以在运行时为UITextView设置框架。
在viewDidLoad中:
-(void)viewDidLoad {
UITextView *textView = [[UITextView alloc] init];
//216 is the height of the keyboard, 20 is the height of the status bar
if (isiPhone5) {
CGRect frame = CGRectMake(0, self.navigationBar.frame.size.height + 20, self.frame.size.width, 568-216);
[textView setFrame:frame];
}
else {
CGRect frame = CGRectMake(0, self.navigationBar.frame.size.height + 20, self.frame.size.width, 480-216);
[textView setFrame:frame];
}
}