我正在尝试在UITableViewCell中添加文本标签或UIImage(无关紧要)。 但它没有出现。我在这个单元格中使用的视图很少。您可以在下面的代码中看到它:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"timelineCell";
KMWTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
if (cell)
{
cell = [cell initWithFrame:CGRectMake(13, 10, 293, 200)];
UIView *cellContentView = [[UIView alloc] initWithFrame:CGRectMake(13, 10, 293, 200)];
cellContentView.layer.cornerRadius = 5;
cellContentView.layer.shadowOffset = CGSizeMake(1, 0);
cellContentView.layer.shadowColor = [[UIColor blackColor] CGColor];
cellContentView.layer.shadowRadius = 5;
cellContentView.layer.shadowOpacity = .25;
cellContentView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"cellBack"]];
UIView *selectedContentView = [[UIView alloc] initWithFrame:CGRectMake(13, 10, 293, 200)];
selectedContentView.layer.cornerRadius = 5;
selectedContentView.layer.shadowOffset = CGSizeMake(1, 0);
selectedContentView.layer.shadowColor = [[UIColor blackColor] CGColor];
selectedContentView.layer.shadowRadius = 5;
selectedContentView.layer.shadowOpacity = .25;
selectedContentView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"cellBackActive"]];
UIView *visibleContentView = [[UIView alloc] initWithFrame:CGRectMake(13, 10, 293, 200)];
visibleContentView.layer.cornerRadius = 5;
visibleContentView.layer.shadowOffset = CGSizeMake(1, 0);
visibleContentView.layer.shadowColor = [[UIColor blackColor] CGColor];
visibleContentView.layer.shadowRadius = 5;
visibleContentView.layer.shadowOpacity = .25;
visibleContentView.backgroundColor = [UIColor clearColor];
//Image adding here:
[ UIImageView *image = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"active.png"]];
[visibleContentView addSubview:image];
[cellContentView addSubview:visibleContentView];
[selectedContentView addSubview:visibleContentView];
[cell setBackgroundView:cellContentView];
[cell setSelectedBackgroundView:selectedContentView];
}
return cell;
}
正如您所看到的,我正在使用backgroundView和selectedBackgroundView,并使用clearColor查看其他信息。那么为什么其他元素不能在visibleView中显示?
更新
我正在使用子类,因为我需要更改单元格的帧大小。
答案 0 :(得分:1)
我认为问题在于您将visibleContentView
添加到selectedContentView
后立即添加到cellContentView
。这会将其从cellContentView
中删除,因为视图一次只能有一个超级视图。所以visibleContentView
实际上在selectedContentView
。如果KMWTableViewCell
正常工作,则应在选择单元格时看到缺少的组件。
答案 1 :(得分:0)
您可以尝试更改“KMWtableViewCell”行
KMWTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
到
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
我认为KMWTableViewCell可能会产生问题。
答案 2 :(得分:0)
我真的不知道这是不是正确的答案,因为我离开了我的Mac,但我认为你应该更换
KMWTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
与
KMWTableViewCell *cell = (KMWTableViewCell*)[tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
希望它有所帮助!