【问题标题】:How to add uiview in uitableviewcell如何在uitableviewcell中添加uiview
【发布时间】:2015-05-07 09:55:17
【问题描述】:

希望你们一切都好。 我的申请中有一个小问题。我有一个带有自定义单元格的表格视图。在我的自定义单元类中,我制作了一个 uiview

    UIView* cellView = [[UIView alloc] initWithFrame:self.contentView.frame];
    cellView.backgroundColor = [UIColor grayColor];
    [self.contentView addSubview:cellView];
问题是 uiview 不适合我的单元格框架。 Cellforrow 为:

- (SummaryViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *cellIdentifier = @"cell";
    SummaryViewCell *cell = (SummaryViewCell *)[tableView dequeueReusableCellWithIdentifier:cellIdentifier];
    if(cell == nil)
    {
        cell = [[SummaryViewCell alloc] init];
    }
    
    cell.backgroundColor = [UIColor blueColor];
  return cell;
}

我尝试过 initWithFrame:self.contentView.frame] 但同样的问题发生了(uiview 出现在单元格中但只覆盖了一半的单元格),我也尝试过 cellView = [[UIView alloc] initWithFrame:CGRectMake(0,0 ,self.frame.size.width 和高度相同)但失败了。需要您的宝贵建议和想法。非常感谢。

【问题讨论】:

    标签: objective-c uitableview


    【解决方案1】:

    你在哪里创建子视图? 尝试在 -layoutSubviews 方法中进行。

    - (void)layoutSubviews {
        [super layoutSubviews];
    
    UIView* cellView = [[UIView alloc] initWithFrame:self.contentView.frame];
        cellView.backgroundColor = [UIColor grayColor];
        [self.contentView addSubview:cellView];
    }
    

    子视图的所有帧都已在此方法中计算,您应该收到正确的子视图宽度\高度。

    【讨论】:

    • 神奇而绝妙的解决方案。 . .非常感谢@4esterUA。我浪费了很多时间(上午 10 点到下午 3 点)。你救了我剩下的一天。衷心的感谢和最诚挚的问候。
    • 很高兴能为您提供帮助。请把我的答案标记为正确,非常感谢。
    • 好的,先生/女士。 . .我已经尝试过这样做,但消息显示“您可以在 59 秒后标记答案”。当然我会标记它。
    【解决方案2】:

    你可以尝试将剪辑设置为边界

    [cellView setClipsToBounds:YES];
    

    【讨论】:

    • 感谢兄弟的回复,4estrUA 的回答解决了我的问题。
    • 我在自定义表格视图单元格中使用了它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-11
    • 2015-02-13
    • 2014-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多