iOS Xib弹框展示多行笔墨父视图根据子视图高度自顺应

藏宝库编辑 2024-9-9 13:48:20 76 0 来自 中国
项目开辟中常常会碰到弹框的需求,如果弹框中笔墨内容是固定的那么弹框高度也是固定的很好写。如果笔墨从接口获取,而且要求弹框高度随笔墨高度厘革就要思量多种情况了。
至少要思量三种情况,分别给弹框设置一个最小高度和最大高度。
1.如果当前笔墨内容高度<规定的笔墨内容最小高度 ,那么当前弹框高度=规定的弹框最小高度
2.如果规定的笔墨内容最小高度<当前笔墨内容高度<规定的笔墨内容最大高度 ,那么当前弹框高度根据当前笔墨高度自顺应
3.如果当前笔墨内容高度>规定的笔墨内容最大高度 ,那么当前弹框高度=规定的弹框最大高度,而且多出来的笔墨通过滑动展示
Xib中具体操纵如下:
1.添加一个ScrollView,添加上下左右和高度束缚
2.在ScrollView内里添加一个Label,并设置笔墨为多行
3.双指按住Label,拖向ScrollView松开,分别添加上下左右束缚,而且把束缚设置为0
4.设置Label和ScrollView的宽度相当

5.把Label、ScrollView和ScrollView的高度束缚拖动到.m文件

5.png 6.在.m文件添加如下代码,给ScrollView分别设置一个最小高度和最大高度,分别测试短文本和长文本的结果。注:如果是UIView,设置高度的代码要放在  layoutSubviews方法内里
- (void)viewDidLoad {    [super viewDidLoad];    // Do any additional setup after loading the view.    //    self.label.text = @"测试";//    self.label.text = @"本科生教务体系(含选课及教务服务)将于9月6日23:00起举行维护,维护时间预计1小时,期间体系大概无法访问。为了克制影响您正常使用干系服务,请您提前做好相应处理处罚。带来的不便,敬请广大家生体谅。本科生教务体系(含选课及教务服务)将于9月6日23:00起举行维护。";    self.label.text = @"本科生教务体系(含选课及教务服务)将于9月6日23:00起举行维护,维护时间预计1小时,期间体系大概无法访问。为了克制影响您正常使用干系服务,请您提前做好相应处理处罚。带来的不便,敬请广大家生体谅。本科生教务体系(含选课及教务服务)将于9月6日23:00起举行维护,维护时间预计1小时,期间体系大概无法访问。为了克制影响您正常使用干系服务,请您提前做好相应处理处罚。带来的不便,敬请广大家生体谅。";}-(void)viewDidAppearBOOL)animated{    if(self.scrollView.contentSize.height < 138){        self.scrollHeight.constant = 138;    }else if (self.scrollView.contentSize.height > 230){        self.scrollHeight.constant = 230;    }else{        self.scrollHeight.constant = self.scrollView.contentSize.height;    }}7.测试结果如下:

6.jpeg 8.jpeg github地址:https://github.com/paperclouds/ScrollAlertView
您需要登录后才可以回帖 登录 | 立即注册

Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )

GMT+8, 2024-10-18 18:27, Processed in 0.188984 second(s), 35 queries.© 2003-2025 cbk Team.

快速回复 返回顶部 返回列表