2015-05-04 129 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

你的答案對我來說都是正確的,即使我只能標記其中的一個。謝謝! –