iPhone上的“联系人”应用程序似乎使用分组的UITableView,其外观类似于图像外的图像,并且图像旁边的文本行被移动。像这样:
如何创建这样的布局,前三行放置在与其他行不同的X位置?
我尝试通过覆盖修改单元格的frame.origin.x和frame.size initWithStyle:我的自定义UITableViewCell类中的reuseIdentifier方法,但没有运气。
@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
答案 0 :(得分:1)
尝试在表格视图委托上实施tableView:indentationLevelForRowAtIndexPath:
。
答案 1 :(得分:1)
不确定这是否是犹太人的方式,而不是改变init方法中的框架尺寸,而是覆盖MyCustomCell的'layoutSubviews'。
这对我有用:
- (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;
}