I am using code to build a uitableview like this:
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"];
And the dataresource and 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;
}
The thing is some separator line is missing and some are not, this really confusing me.
So what may have caused this problem?
To those who may concern, this screenshot is not on a simulator but was captured on an ihpone device.
And the line was originally showed except that after scrolling down and bouncing back, the line was missing.
It looks like you're using a custom cell class.
If you are overriding the layoutSubviews()
method in your cell class implementation, make sure that in the method you have the following:
super.layoutSubviews()
or in Objective-C:
[super layoutSubviews];
That solved the problem for me.
you can do another way,
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With