#define INDENT_WIDTH 84
...
- (void)layoutSubviews
{
[super layoutSubviews];
//Indent the background views.
CGRect frame = self.backgroundView.frame;
frame.origin.x = frame.origin.x + INDENT_WIDTH;
frame.size.width = frame.size.width - INDENT_WIDTH;
self.backgroundView.frame = frame;
self.selectedBackgroundView.frame = frame;
//Also indent the UIImageview that contains like a shadow image over the backgroundviews (in grouped tableview style only).
for (UIView *subview in self.subviews) {
if ([subview isKindOfClass:[UIImageView class]]) {
CGRect frame = subview.frame;
frame.origin.x = frame.origin.x + INDENT_WIDTH;
frame.size.width = frame.size.width - INDENT_WIDTH;
subview.frame = frame;
}
}
}
由于内容视图具有透明背景色,您可以在左侧放置一个UIImageView(例如,您的故事板单元格原型),然后您应该获得与“联系人”应用程序中的“添加联系人”视图相同的效果。
您可以通过以下方式实现与屏幕截图相同的效果:
(1) 创建一个具有类似于UITableViewStyleGrouped样式背景颜色的父视图控制器。
(2) 将图片添加到UIImageView中,并将其作为(1)的子视图。
(3) 在右侧再次将UITableView (分组样式)添加为(1)的子视图。
适当地设置这两个子视图的框架和布局,使用委托将这两个子视图进行“逻辑连接”。
编辑:可以使用[UIColor colorWithPatternImage:(UIImage*)image]来实现背景颜色。只需从iPhone模拟器上的任何示例应用程序中裁剪背景即可。