2015-05-04 92 views
0

我宣布X3 UITableView的在Xcode XIB Interface Builder的的iOS表视图XIB布局问题

enter image description here

然后我产品iPad Air的iOS模拟器跑了当前UIViewController

enter image description here

如您所见,第一个UITableView视图的顶部单元格与s不同第二个三分之一。

这是为什么?

如何使这些UITableView'看起来像一样?

+0

你设置tableviews'数据源是视图 - 控制?你是否实现了numberofrows和cellforrowatindexpath方法? –

+0

没有。它只是界面生成器。它没有与数据源连接,但还没有连接 –

+0

。我可以重现这种行为。对我来说看起来一样!但只要你实现所需的数据源/委托方法,你应该没问题! –

回答

1

好的,我明白了。重载init方法如下所示:

- (instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { 
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
    if (self) { 
     self.automaticallyAdjustsScrollViewInsets = NO; 
    } 
    return self; 
} 

你必须采取的插图的照顾自己,因为这种自动属性只能办理层次结构中的第一子视图的插图。

+0

我可以在XIB界面构建器中提供此选项吗? –

+0

仅当使用故事板时。 –

+0

但是,这个选项使得我所有的视图控制器都像第二个和第三个一样工作(忽略导航栏)。是否有可能,每张桌子都像第一张桌子一样? –

1

的插图问题创建这些属性:

@property (weak, nonatomic) IBOutlet UITableView *tableViewLeft; 
@property (weak, nonatomic) IBOutlet UITableView *tableViewMiddle; 
@property (weak, nonatomic) IBOutlet UITableView *tableViewRight; 

,然后尝试以下操作:

- (void)viewDidLayoutSubviews { 
    UIEdgeInsets inset = UIEdgeInsetsMake(self.topLayoutGuide.length, 0.0, 0.0, 0.0); 
    self.tableViewLeft.contentInset = inset; 
    self.tableViewMiddle.contentInset = inset; 
    self.tableViewRight.contentInset = inset; 
} 
+0

你的答案对我来说都是正确的,即使我只能标记其中的一个。谢谢! –