如何UITableViewCell在表格视图中使用s 内的自动布局,让每个单元格的内容和子视图确定行高(本身/自动),同时保持平滑的滚动性能?
我应该如何以编程方式(以及在哪种方法中)配置UILabel,其高度取决于其文本?我一直在尝试使用Storyboard和代码的组合进行设置,但无济于事.每个人都建议sizeToFit在设置lineBreakMode和numberOfLines.但是,不管我把代码viewDidLoad:,viewDidAppear:或者viewDidLayoutSubviews我不能让它开始工作.要么我的盒子太小而不能长文本也不会长,或者我把它做得太大而且不会缩小.
我基本上试图重现警报的标题和消息部分的行为.
标题和消息标签似乎位于滚动视图中.如果标签文本增加,则警报高度也随着标签的固有内容大小而增加.但在某个高度,警报高度停止增加,标题和消息文本变为可滚动.
我读过的内容:
用品
堆栈溢出
答案可能在那里,但我无法抽象它.
我尝试过的:
我只关注具有两个标签的滚动视图,我试图做一个最小的例子,其中父视图将根据scrollview的内在高度调整大小.我玩过很多限制.这是一个组合(许多)组合不起作用:
我使用过自动布局和正常约束,甚至内在的内容大小.此外,我知道如何使用自动布局获得基本滚动视图.但是,我从未做过任何关于优先级和内容拥抱以及抗压缩性的事情.从我所做的阅读中,我对它们的含义有一种肤浅的理解,但我不知道如何在这种情况下应用它们.我的猜测是我需要对内容拥抱和优先级做些什么.
无论如何将UILabel包装到下一行还是我必须使用UITextView?
我在过去的QAs中搜索了解决方案,但找不到合适的QA.
有谁知道如何UILabel动态调整大小以适应文本长度?
我上传了我不想要的屏幕截图(第1行)和我想要的(第2行).
我很感激任何线索,建议或代码示例.谢谢.
我有一个UILabel,他的文字大小有属性
title.adjustsFontSizeToFitWidth = YES;
Run Code Online (Sandbox Code Playgroud)
这阻止我使用标准方法来调整UILabel的大小.我在这里读到另一篇文章,我应该使用这个功能
sizeWithFont:minFontSize:actualFontSize:forWidth:lineBreakMode
Run Code Online (Sandbox Code Playgroud)
从这个答案:当-adjustsFontSizeToFitWidth设置为YES时,如何计算UILabel的字体大小?
现在,我无法弄清楚如何使它工作..这是实际的代码
UIFont *font = [UIFont fontWithName:@"Marker Felt" size:200];
UILabel *title = [[UILabel alloc] initWithFrame:CGRectMake(0.0, 0.0, width, 20.0)];
title.text = @"this is a long title that should be resized";
title.font = font;
title.numberOfLines = 1;
title.adjustsFontSizeToFitWidth = YES;
CGFloat pointSize = 0.0;
CGSize size = [title.text sizeWithFont:font
minFontSize:title.minimumFontSize
actualFontSize:&pointSize
forWidth:width
lineBreakMode:title.lineBreakMode];
title.frame = CGRectMake(title.frame.origin.x,
title.frame.origin.y,
size.width,
size.height);
Run Code Online (Sandbox Code Playgroud)
UILabel错误地调整了大小,好像字体大小仍然是200 ..任何线索?谢谢!
我有一个表从数据库加载数据,但问题是如果加载的文本太长,它会离开屏幕.我正试图找到一种方法让文本进入下一行并让单元格自动调整大小以适应这种变化.有谁知道这是怎么做的?该单元有三个标签,但其中一个允许多行.
编辑:
我使用自动约束来使用它,但是如何调整表格单元格以使实际项目适合单元格并且不会越过单元格边界?
ios ×6
uilabel ×4
autolayout ×3
iphone ×2
objective-c ×2
uitableview ×2
cocoa-touch ×1
ios6 ×1
nsautolayout ×1
row-height ×1
swift ×1
uifont ×1
uiscrollview ×1