我按照这个答案:在UITableView中使用自动布局进行动态单元格布局
基本上,我正在使用SDWebImage
下载图像,并调整UIImageView
的高度,以便它显示整个图像(当然是按比例缩小的)。我遇到的问题在下面的代码中进行了注释:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
// dequeue cell using identifier
[cell.pictureView sd_setImageWithUrl:myUrl completed:^( ... block ...) {
// This code will scale down the UIImage to the UIImageView's width maitaining
// its aspect ratio, and also will resize the UIImageView's to match the scaled-down UIImage's height
if(image != nil) {
CGSize imageSize = [image size];
CGSize imageViewSize = CGSizeMake(280.0, 100.0);
CGFloat correctHeight = (imageViewSize.width / imageSize.width) * imageSize.height;
[[cell pictureView] setFrame:CGRectMake([[cell pictureView] frame].origin.x,
[[cell pictureView] frame].origin.y,
CGRectGetWidth([[cell pictureView] bounds]),
correctHeight)];
// At this point, the subviews are all set. Since this happens async, what method do I call to re-calculate this row's height.
}];
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
static int defaultHeight = 230;
// Get's the offscreen cell used only for calculation purposes
WKZEventsCell *cell = [[self offscreenCells] objectForKey:CellIdentifier];
if(!cell) {
// HOW DO I GET A REFERENCE TO A PROTOTYPED CELL INSIDE THE STORYBOARD???
// note that calling dequeueReusableCellWithIdentifier:CellIdentifier will cause a memory leak
cell = ??????
[[self offscreenCells] setObject:cell forKey:CellIdentifier];
}
WKZEvent *event = [[self eventList] objectAtIndex:[indexPath row]];
[[cell titleLabel] setText:[event title]];
[[cell placeLabel] setText:[event title]];
[[cell pictureView] setImage:image];
// Even tho this should be in memory cache right now, I'm pretty sure this call is still asynchronous, so this might make the whole thing wont work.
[cell.pictureView sd_setImageWithUrl:myUrl
// THIS METHODS ARE COMMENTED BECAUSE MY CONSTRAINTS ARE SET IN STORYBOARD, BUT NOT SURE IF I'M RIGHT AT THIS ONE
//[cell setNeedsUpdateConstraints];
//[cell updateConstraintsIfNeeded];
// I DONT HAVE A MULTILINE LABEL SO I DONT CALL THIS. NOT SURE ABOUT THIS ONE EITHER
//cell.bounds = CGRectMake(0.0f, 0.0f, CGRectGetWidth(tableView.bounds), CGRectGetHeight(cell.bounds));
[cell setNeedsLayout];
[cell layoutIfNeeded];
CGFloat height = [cell.contentView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize].height;
height += 1;
NSLog(@"%f", height);
return height;
}
故事板:
请务必将单元格的行高设置为默认值。
代码:
将表格视图设置为自大小单元格:
var tableview: UITableView {
didSet {
tableView.rowHeight = UITableViewAutomaticDimension
tableView.estimatedRowHeight = 44
}
}
在运行时,尽快开始异步加载映像。
下载后,将图像加载到图像视图并执行:
tableView.beginUpdates()
tableView.endUpdates()
我有一个标签在UITableViewCell,我想我的高度TableViewCell是自动根据标签高度。
这不是重复的问题,因为这个问题没有真正的解决方案 我尝试使用约束通过其内容实现< code>UITableViewcell动态高度,但得到布局警告: 将尝试通过破坏约束来恢复 在 UIView 中创建一个符号断点对于不满意的约束,以便在调试器中捕获此内容。UI视图上列出的基于 UI 的基于 UI 的布局调试类别中的方法也可能有所帮助。2019-03-15 12:27:52.085475 0400
我在TableViewCell中显示了拉伸图像。我需要找到图像的高度和宽度从图像URL。我需要找到纵横比,并根据Swift4中动态单元格的高度在单元格上拟合图像。
问题内容: 题: 如何使UITableViewCell高度动态变化UICollectionViewCell? 查看层次结构: UIViewController UITableView UITableViewCell UICollectionView UICollectionViewCell1 Label 1 UICollectionViewCell2 Label 2 UICollectionVie
我正在设计一个具有滚动视图的页面,其上方是表格视图(禁用滚动)。为此,我在这个问题中提到了答案 - 使UITableView不可滚动并调整高度以容纳所有单元格,但没有成功。 视图层次结构以及提供的约束- -主视图 -滚动视图< br >固定在主视图的所有边上(0,0,0,0),限制边距 -内容视图 固定到滚动视图(0,0,0,0),与主视图宽度相等,与主视图高度相等(优先级-250) -内容视图中
我有一个响应的背景图像在一个div。我想要一个两列柔性布局在它的顶部,其中左布局有图像的高度100%的父div与宽度自动缩放像响应图像。右边是以Flex为中心的两行文本。 这是目前为止我能得到的最接近的。但当浏览器调整大小时,flex不会拉伸以适应背景div图像,左侧图像也不会相应地缩放。 注意:代码中不应指定px的宽度和高度 null null