将 UITableViewCell 附件放在顶部

Posted

技术标签:

【中文标题】将 UITableViewCell 附件放在顶部【英文标题】:Keep UITableViewCell accessory on top 【发布时间】:2015-02-01 20:49:31 【问题描述】:

我有一个带有附件类型详细信息指示器的 UITableViewCell。当我调整单元格大小时,单元格附件会水平居中。我怎样才能让它保持在顶部,而不是居中?

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

    customCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cellID" forIndexPath:indexPath];

    return cell;

如果可能,我更喜欢在故事板中进行,如果没有,我很高兴听到如何以编程方式进行。

【问题讨论】:

【参考方案1】:

我的错误,实际上你不能对tableView的默认accessoryView做任何改变,你需要为你的cell创建一个自定义的accessoryView。只需忽略附件类型,因为一旦您创建了自己的附件视图,它就不再重要了。

在 CellForRowAtIndexPath 中尝试此代码

if(!cell.accessoryView)

   UIImage *image = [UIImage imageNamed:@"image.png"];

    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
    CGRect frame = CGRectMake(0.0, 0.0, image.size.width, image.size.height);
    button.frame = frame;
    [button setBackgroundImage:image forState:UIControlStateNormal];

    //add target if necessary
    [button addTarget:self action:@selector(checkButtonTapped:event:)  forControlEvents:UIControlEventTouchUpInside];

    //apply customisations 
    button.backgroundColor = [UIColor clearColor];
    cell.accessoryView = button;

【讨论】:

我试过了,但是没有用。我确实有一个自定义单元格,所以也许这就是原因?

以上是关于将 UITableViewCell 附件放在顶部的主要内容,如果未能解决你的问题,请参考以下文章

稍后删除 UITableViewCell 的附件视图?

当附件是UITableViewCellAccessoryCheckmark时,如何将文本置于UITableViewCell中

如何将附件视图背景设置为与 UItableViewCell 中的内容视图相同的背景?

UITableViewCell 放置事件

将 Constraint 设置为与 UiViewController 相关的 UITableViewCell

UITableViewCell 附件视图按钮未在 ipad 纵向模式下显示