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) }
通过以上代码即可调整视图的大小,使得视图显示正常。
相关文章推荐
- iOS 8 Tableview根据AutoLayout自动调整高度
- iOS 8 Tableview根据AutoLayout自动调整高度,iostableview高度
- ios --xib自定义,解决在导航栏不透明的情况下,自定义xib view高度被压缩64的问题
- iOS11 调整tableview 头部空白高度关闭自动调整
- IOS TableView的Cell高度自适应,UILabel自动换行适应
- iOS开发小技巧:如何在xib下给view设置0.5的高度(即1个像素)
- UITableView详解(UITableViewCell(三) cell根据文本长度来自动调整cell高度)
- IOS中 xib自定义View在storyboard中的使用
- IOS 使用XIB 自定义View
- iOS_自动变高度的headerView
- iOS 8自动调整UITableView和UICollectionView布局
- 【swift,oc】ios开发中巧用自动布局设置自定义cell的高度
- ios使用xib自定义view, 在storyboard使用。
- iOS开发:xib之UICollectionView自定义cell
- IOS TableView的Cell高度自适应,UILabel自动换行适应
- iOS回顾笔记(03) -- 自定义View的封装和xib文件的使用详解
- OC笔记 - xib封装view、Delegate、代码自定义高度不一致的cell(2015.2.15)
- Android自定义控件之自定义Text,令控件中的字根据控件高度自动调整大小-FenGKun
- iOS用xib自定义view,修改不了frame的问题
- iOS 自定义TextView/TextField光标颜色、长度或高度