ios xib 初始化高度_iOS - 自定义 xib View 自动调整高度

在iOS开发过程中,我们经常需要自定义视图,视图的内容一般都是固定的提示,包含一些文字、按钮等等。当需要显示的时候,一般需要固定视图的大小,不需要根据屏幕大小做调整,不论是在屏幕较小的手机上,还是在屏幕较大的iPad上面,显示都需要效果一样。

比如我们需要在屏幕中间弹出以下提示框:

以上弹出框在低分辨率的手机上显示没有问题,但是在高分辨率的时候就会出现问题,登录按钮被遮挡,原因就是由于第二个设备的分辨率较高,而我们显示视图的时候是会指定视图大小,在不同分辨率的屏幕上就会显示高度不同,导致到分辨率设备显示不全

以上视图是在xib中设计的,视图中的控件位置和大小都是通过约束设置的,设计的时候每个设备都没有问题,不会出现遮挡问题;在视图中,最底下的登录按钮并没有设置底部约束,如果通过设置底部约束,可以避免登录按钮显示在视图范围内,但是会遮挡中间的文字,所以我们有必要在视图显示时调整视图大小。

那么我们在哪里调整视图大小呢?在 layoutSubviews 中根据登录按钮的底部位置和高度调整当前视图的高度:视图高度 = self.signInButton.frame.origin.y + self.signInButton.frame.size.height + 16.0,具体代码如下:

overridefunc layoutSubviews() {

super.layoutSubviews()//调整视图大小

self.frame = CGRect.init(x: self.frame.origin.x, y: self.frame.origin.y, width: self.frame.size.width, height: self.signInButton.frame.origin.y + self.signInButton.frame.size.height + 16.0)

}

通过以上代码即可调整视图的大小,使得视图显示正常。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值