[问题] cell内label重复

楼主: greatroy (没有暱称)   2014-03-20 17:22:43
想请教的问题是,Label重复产生造成画面重叠,
要如何解决?
谢谢
目前方法是:
为避免重复产生Label,在cellForRowAtIndexPath里
先把所有Label砍光,再产生Label,但实际只砍到textLabel,
而自订的Label在循环里却找不到。
for (UIView *item in [cell subviews]) {
if ([item isKindOfClass:[UILabel class]]) {
[item removeFromSuperview];
}
}
if (indexPath.row == 1) {
UILabel *subTitle = [[UILabel alloc] initWithFrame:rect];
[subTitle setText:[NSString stringWithFormat:@"%@", _buyDate]];
[cell addSubview:subTitle];
[cell.textLabel setText:@"购入日期"];
[cell setAccessoryType:(UITableViewCellAccessoryDisclosureIndicator)];
}
作者: tentenlee (天天)   2014-03-20 17:39:00
你的height没有设定吧
作者: NelsonT (.)   2014-03-20 21:27:00
你想作什么功能呢?直觉你现在的作法不太合理...
作者: hakushadow   2014-03-21 01:54:00
你砍的view在cell.contentView 可是你生的在cell本身?然后看不到你生cell的地方,也许是被重复生成了?
楼主: greatroy (没有暱称)   2014-03-21 08:44:00
不好意思可能表达不清,我想做的功能就是我前几篇提的http://tinyurl.com/pp9vsmg不论是在cell.contentView or cell里,都找不到控件可能是我观念有误,请指教正确方式为何?总之不要造成画面重叠即可自言自语..虽然用自订cell的方式可以解决,但究竟错在哪
作者: whitefur (白毛)   2014-03-22 12:05:00
cell会被重复使用(reuse), 所以你拿到的cell如果是之前就已经存在的, 之前就执行过[cell addSubview....你再给他一次[cell addSubview....]不断的一直重复下去, 就会crash了tableView跟collectionView的cell都是重复使用的你滑动你的tableView后, UIKit会去把不在画面上的cell拿来重复使用,所以我们只需要改变里面的资料, 不必每次都重新产生cell的UI
作者: howdiun (Howdiun)   2014-04-02 12:05:00
使用自定义的cell,把要更改值的view加入property

Links booklink

Contact Us: admin [ a t ] ucptt.com