您的位置:首页 > 移动开发 > IOS开发

iOS - 自定义 xib View 自动调整高度

2020-11-02 17:15 1736 查看

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

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

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

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

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

override func 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.
ad8
height + 16.0)
}

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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: