如何UITableViewCell在表格视图中使用s 内的自动布局,让每个单元格的内容和子视图确定行高(本身/自动),同时保持平滑的滚动性能?
我有一个UITableView填充了自定义单元格(继承自UITableViewCell),每个单元格包含一个UIWebView根据它的内容自动调整大小.这就是问题,如何UITableView根据内容(变量webView)更改单元格的高度.
解决方案必须是动态的,因为用于填充的HTML UIWebViews是从不断变化的Feed中解析的.
我有一种感觉,我需要使用UITableView委托方法,heightForRowAtIndexPath但从它的定义:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
;//This needs to be variable
}
Run Code Online (Sandbox Code Playgroud)
我无法访问单元格或其内容.我可以更改单元格的高度cellForRowAtIndexPath吗?
任何帮助都会很棒.谢谢.
两年多前我问过这个问题.通过自动布局的介绍,可以找到iOS7的最佳解决方案:
在iOS8上,此功能内置于SDK中
请帮我提一下这个问题.我尝试了所有可以在这里找到的选择.
附上我的代码示例(我知道,它非常糟糕).
如何UITableView动态更改高度?
- (void)viewDidLoad
{
[super viewDidLoad];
[self vozvratmassiva];
}
- (NSMutableArray *) vozvratmassiva
{
...
return array;
}
-(NSInteger)numberOfSectionInTableView:(UITableView *)tableView
{
return 1;
}
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
NSArray *a = [self vozvratmassiva];
return a.count;
}
-(UITableViewCell *)tableView:(UITableView *) tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
....
return cell;
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
....
return commonsize;
}
@end
Run Code Online (Sandbox Code Playgroud) 我需要UITableViewCell根据它的内容设置动态高度.
这是我的演示图片:
在这个标签中有动态内容所以根据标签内容,我的单元格高度应该改变..
我得到了约束错误.在这个单元格中,有两个UILabel可用,并且都具有动态内容大小.(我已经使用只有一个标签的自动调整大小的单元格进行了演示.)但是在这个单元格中有两个标签.所以错误是xcode建议我给Y POS或Height标签,但我已经设置了顶级约束.(标签线设置为0的4个侧面约束)但是它仍然失败.我也尝试使用此代码
self.tableView.estimatedRowHeight = 250.0;
self.tableView.rowHeight = UITableViewAutomaticDimension;
Run Code Online (Sandbox Code Playgroud)
这是我的演示代码
您好,在自定义UITableViewCell上使用nib或storyboard有什么区别?我打算使用具有动态高度的自定义uitableviewcell创建Facebook News Feed.使用哪个更灵活?
编辑:你为什么要对我的问题进行投票?我的帖子上没有发现问题.
ios ×5
uitableview ×5
objective-c ×3
autolayout ×1
iphone ×1
nib ×1
nsautolayout ×1
row-height ×1
swift ×1
uilabel ×1
uistoryboard ×1