我正在使用代码来构建这样的uitableview:
UITableView *tableView = [[UITableView alloc]initWithFrame:CGRectMake(0, 290, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height - 290)];
tableView.delegate = self;
tableView.dataSource = self;
[tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"settingtabcell"];
dataresource和viewdelegate
- (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
static NSString *CellIdentifier = @"settingtabcell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
}else{
for(UIView *subview in cell.subviews){
[subview removeFromSuperview];
}
}
UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(70, 0, [UIScreen mainScreen].bounds.size.width - 20, 90)];
UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(10, 30, 32, 32)];
switch (indexPath.row) {
case 0:
label.text = @"Copyright information";
imageView.image = [UIImage imageNamed:@"copyright.png"];
break;
case 1:
label.text = @"Clear cache";
imageView.image = [UIImage imageNamed:@"clearcache.png"];
break;
case 2:
label.text = @"Feedback";
imageView.image = [UIImage imageNamed:@"feedback.png"];
break;
case 3:
label.text = @"About us";
imageView.image = [UIImage imageNamed:@"about.png"];
default:
break;
}
cell.selectionStyle = UITableViewCellSelectionStyleNone;
[cell addSubview:imageView];
[cell addSubview:label];
return cell;
}
-(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return 4;
}
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
return 90;
}
事情是缺少一些分隔线,有些则没有,这真让我感到困惑。
那么可能是什么导致了这个问题?
对于那些可能关注的人,此屏幕截图不是在模拟器上,而是在ihpone设备上捕获。
最初显示的是这条线,只是在向下滚动并弹回后,线条丢失了。
答案 0 :(得分:2)
你可以采取另一种方式,
答案 1 :(得分:2)
看起来您正在使用自定义单元类。
如果要覆盖单元类实现中的layoutSubviews()
方法,请确保在方法中具有以下内容:
super.layoutSubviews()
或在Objective-C中:
[super layoutSubviews];
这解决了我的问题。
答案 2 :(得分:0)
在cellforrowatindexPath
中写下这一行 cell.selectionStyle=UITableViewStylePlain;
并拖动一个带有视图控制器的UILabel宽度和高度1px位于内容视图的底部,看到图像中的蓝线
在故事板中做一些事情
在Device上重新加载表后,请参阅图像
答案 3 :(得分:0)