Iphone 在分组的UITableView中移动行的位置

Iphone 在分组的UITableView中移动行的位置,iphone,uitableview,Iphone,Uitableview,iPhone上的Contacts应用程序似乎使用了分组的UITableView,在表外看起来像一个图像,并且图像旁边的文本行被移动。这样地: 如何创建这样的布局,将前三行放置在与其他行不同的X位置 我试图通过覆盖 initWithStyle:reuseIdentifier方法在我的自定义UITableViewCell类中,但运气不好 @implementation MyCustomCell - (id)initWithStyle:(UITableViewCellStyle)style reu

iPhone上的Contacts应用程序似乎使用了分组的UITableView,在表外看起来像一个图像,并且图像旁边的文本行被移动。这样地:

如何创建这样的布局,将前三行放置在与其他行不同的X位置

我试图通过覆盖 initWithStyle:reuseIdentifier方法在我的自定义UITableViewCell类中,但运气不好

@implementation MyCustomCell

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
    if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier])
    {
        CGSize offset = CGSizeMake(30, 30);         
        CGRect originalFrame = self.frame;

        CGFloat newX = originalFrame.origin.x + offset.width;
        CGFloat newWidth = originalFrame.size.width - offset.width;

        CGRect newFrame = CGRectMake(newX, originalFrame.origin.y,
                                     newWidth, originalFrame.size.height);      
        self.frame = newFrame;      
    }

    return self;
}
@end

请尝试在您的表视图委托上实现。

不确定这是否是最合适的方法,但与其在init方法中更改框架维度,不如替代MyCustomCell的“LayoutSubview”

这对我很有用:

- (void)layoutSubviews
{
    [super layoutSubviews];

    CGRect origFrame = self.frame;      
    CGSize offset = CGSizeMake(30, 30);

    CGFloat newX = originalFrame.origin.x + offset.width;
    CGFloat newWidth = originalFrame.size.width - offset.width;

    CGRect newFrame = CGRectMake(newX, originalFrame.origin.y,
                                 newWidth, originalFrame.size.height);    
    self.frame = newFrame;
}

我不想缩进单元格的内容,我想把表格的整行移过去。绘制的边框也会反映这一点,在行的左侧会有一些空间。我认为它可能会缩进单元格边框,类似于“单击此处显示删除按钮”的工作方式。我想不是。