答案 0 :(得分:3)
其他解决方案要求您创建自己的背景图像并使用两个不方便的tableview。我所做的是子类UITableViewCell并缩进背景视图:
#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 :(得分:1)
答案 2 :(得分:0)
您可以通过以下方式在屏幕截图中实现相同的目标:
(1)父视图控制器,其视图的背景颜色类似于UITableViewStyleGrouped的背景颜色。
(2)将照片添加到UIImageView上,该视图是(1)
的子视图(3)再次将右侧的UITableView(分组样式)作为子视图添加到(1)
正确设置两个子视图的帧,并相应地设置屏幕截图中的布局,并使用委托“逻辑连接”两个子视图。
编辑:可以使用[UIColor colorWithPatternImage:(UIImage *)image]实现背景颜色。只需从iphone模拟器上的任何示例应用程序中裁剪背景。