设置uitableviewcellaccessory的位置

时间:2011-03-29 04:10:51

标签: iphone objective-c ios4 uitableview

默认情况下,UITalbeViewCellAccessory的位置位于右侧单元格的中间位置。我想在Y轴上移动29个像素(向下移动29个像素)。我怎样才能做到这一点?我尝试设置accessoryView的框架但是没有用。

谢谢,

5 个答案:

答案 0 :(得分:1)

UIImageView的一个技巧作为accessoryView(略有修改,可能包含拼写错误):

cell.accessoryView = ({UIImageView * imgV = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"image.png"]];
                    CGRect frame = imgV.frame;
                    frame.size.width = frame.size.width + 10; //Push left by 10
                    imgV.frame = frame;
                    [imgV setContentMode:UIViewContentModeLeft];
                    imgV; });

答案 1 :(得分:1)

设置accessoryView初始帧是无效的,只要单元格进行布局就会更改,您需要:

- (void)layoutSubviews
{
    [super layoutSubviews];
    self.accessoryView.center = CGPointMake($yourX, $yourY);
}

这是为附件视图设置自定义位置的简单方法,在任何单元格状态下保持

答案 2 :(得分:0)

您无法移动默认UITableViewCellAccessoryType。您只需要向单元格添加自定义视图:

[cell.contentView addSubview:aView];

答案 3 :(得分:0)

默认UITableViewCell accessoryView属性使用UITableViewCellUITableView框架属性中的值进行硬编码比例

(类似于UITableViewCell.accessoryView.frame.x = UITableView.frame.width - *30, and UITableViewCell.accessoryView.frame.y = UITableViewCell.frame.height / 2 - *10)(*由我粗略估算值)

例如,如果您要降低UITableView.frame.width值,accessoryView"绝对值" x位置向左移动,同样,你可以调整"绝对值"通过操纵UITableViewCell高度值来定位y位置,并且可能,您可以级联2 UITableViewCell并将内部一帧高度设置为大于其父级,以便附件视图的位置(位于内部UITableViewCell高度的一半左右)得到一个较低的绝对值#34; y位置值。

不是一个漂亮的解决方案,但这是没有自定义附件视图的单向方式。

答案 4 :(得分:-3)

为此,您必须选择custom accessory view ...因为更简单的方法来更改UITableViewCellAccessory的位置以及自定义附件视图,请查看 Custom Accessory View For UITableView in iPhone < /强>

现在可以随意设置配件。

祝你好运!