2011-03-04 85 views

回答

0

可以通过实现在屏幕截图是相同的:

(1)与具有类似的UITableViewStyleGrouped的背景颜色的图父视图控制器。

(2)添加上一个UIImageView照片这将是一个子视图(1)

(3)在右侧再次添加的UITableView(分组风格)作为一个子视图(1)

正确设置两个子视图的框架并相应地设置截图的布局,并使用委托“逻辑连接”两个子视图。

编辑:使用[UIColor colorWithPatternImage :(UIImage *)图像]可以实现背景颜色。只需从iPhone模拟器上的任何示例应用程序裁剪背景。

+0

这并没有达到他想要的效果 - 他希望随后的表格部分为全宽。 – occulus 2011-03-04 16:02:43

+0

我曾经需要两个子视图互相同步滚动。左和右。您也可以通过委派轻松实现。 SO上有很多描述这个的帖子。 – Bourne 2011-03-04 16:04:40

+0

不能相信即使你不处于编辑模式,也没有简单的方法调用缩进。无论如何....我知道的方式,很多工作要继承世界;) – masgar 2011-03-04 17:11:58

3

其他解决方案要求您创建自己的背景图像并使用两个不方便的表格。我所做的是子类的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(例如,在你的故事板电池原型),你应该获得与联系人应用程序中的“添加联系人”视图相同的效果。

+0

我仍然看到了缩进单元格左侧的分隔线,但后来意识到它在UITableView中:[tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone] ; – 2013-03-01 21:21:28