我有一个名为GameCell的自定义单元类,即在故事板中创建的UI。当我的细胞加载时,它们会相互叠加。 cell.clipsToBounds YES和NO会出现此问题,只是在不同的变体中:
我也试过[cell setClipsToBounds:(BOOL)]但没有成功。
这是我的cellForRowAtIndexPath方法:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"gameCell";
GameCell *cell = (GameCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
[cell setSelectionStyle:UITableViewCellSelectionStyleNone];
[cell.contentView.superview setClipsToBounds:NO];
NSLog(@"made a cell");
PFObject *myPartners = [self.games objectAtIndex:indexPath.row];
PFUser *partner = [self.partnerList objectAtIndex:indexPath.row];
// Cell profile image
cell.profileImage.layer.cornerRadius = cell.profileImage.frame.size.width / 2;
cell.profileImage.clipsToBounds = YES;
if([partner objectForKey:@"profilePic"]!=nil){
cell.profileImage.image = [partner objectForKey:@"profilePic"];
}
else {
cell.profileImage.image = [UIImage imageNamed:@"smile_green.png"];
}
//Cell indicators
if((int)[myPartners objectForKey:@"sent"]==1){
cell.myIndicator.image = [UIImage imageNamed:@"arrow_icon_dbl.png"];
}
else if ([myPartners objectForKey:@"sent"]==0){
cell.myIndicator.image = [UIImage imageNamed:@"arrow_icon.png"];
}
cell.partnerName.text = [myPartners objectForKey:@"receiverName"];
cell.gameId = myPartners.objectId;
// Cell drop shadow
[cell.cellView.layer setShadowColor:[UIColor blackColor].CGColor];
[cell.cellView.layer setShadowOpacity:0.5];
[cell.cellView.layer setShadowRadius:2.0];
[cell.cellView.layer setShadowOffset:CGSizeMake(1.0, 1.0)];
// Cell buttons
if([myPartners objectForKey:@"picture"]!=nil) {
[cell.myPlay setEnabled:NO];
} else {
[cell.myPlay setEnabled:YES];
}
return cell;
}
视图是嵌入在NavigationController中的UITableViewController
答案 0 :(得分:3)
您使用了dequeueReusableCellWithIdentifier:
像这样使用
NSString *CellIdentifier = [NSString stringWithFormat:@"Cell %d",indexPath.row];
UITableViewCell *cell=[self.tableView cellForRowAtIndexPath:indexPath];
if (cell == nil)
{
cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
并查看此链接。
UITableView cell Contents are disappearing and overlapping when scrolled in UITableViewcell?
答案 1 :(得分:2)
您应该确保单元格的高度是RowHeight
控件的UITableView
。
如,
Cell是从XIB设计的,视图的高度是30,然后确保:
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
return 30.0f;
}
答案 2 :(得分:-1)
在属性检查器中取消Adjust Scroll view insets
选项。
您需要点击视图控制器。