【发布时间】:2017-01-04 19:52:05
【问题描述】:
我遵循https://stackoverflow.com/a/18746930 中提到的概念,但使用自动布局实现动态单元格的方式略有不同。我只有一个原型定制单元。但是我必须根据数据数组向单元格添加多个 UILabel 并且必须保持动态单元格高度。
//我的UITableViewCell
@interface CustomCell ()
@property (nonatomic, assign) BOOL didAddLabel;
@end
@implementation CustomCell
- (void)awakeFromNib {
[super awakeFromNib];
}
-(void)addLabel:(NSArray*)someAry{
if(!didAddLabel){
for (int i=0; i<someAry.count; i++) {
// Initialize UILabel Programtically ...
// adding label
[self.aViewOfContaintView addSubview:aLabel];
}
self.heightLayoutConstraintOfaViewOfContaintView.constant = value;
[self.aViewOfContaintView layoutIfNeeded];
self.didAddLabel = YES;
}
}
@end
//我的UIViewController
- (void)viewDidLoad {
[super viewDidLoad];
//.. .. ..
self.tableView.rowHeight = UITableViewAutomaticDimension;
self.tableView.estimatedRowHeight = 100;
//.. .. ..
}
- (UITableViewCell *)tableView:(UITableView *)theTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
CustomCell *cell = (CustomCell *)[theTableView dequeueReusableCellWithIdentifier:CellIdentifier];
// Configure the cell for this indexPath
//.. .. ..
//Add Label
[cell addLabel:anAry];
[cell layoutIfNeeded];
return cell;
}
如果我不使用那个检查 didAddLabel,然后滚动表格会粘住。如果我使用它,那么我只会得到四个不同高度的单元格。
上面的答案提到“对于单元格中的每个唯一约束集,使用唯一的单元格重用标识符。 ……”
如何使用/注册不同的重用标识符到同一个自定义单元格? 任何替代解决方案或任何帮助将不胜感激。
【问题讨论】:
-
动态添加标签几乎总是一个坏主意。你为什么不使用表格部分呢?或者,一个集合视图?
-
@Sulthan ,感谢您提供的替代方案。但是我想解决这个场景,那我要怎么解决呢?
-
@MehediHasan 你有没有找到解决办法?
标签: ios objective-c uitableview autolayout