簡體   English   中英

iOS界面生成器布局奇怪

[英]ios interface builder layout oddity

我正在使用XCode + IB來布局一個非常簡單的視圖。 頂部有一個標准NavigationController導航欄。 在主視圖內部是另一個視圖,其中包含一個標簽,然后是一個下面的表格,該表格占據了屏幕的其余部分。 我將標簽放在此容器視圖中,因為我希望導航欄下方的區域具有背景色(灰色)。

問題是,即使主視圖僅在NavigationBar下方開始,標簽的容器視圖仍位於導航欄下方。 有點。 您會看到,標簽顯示在導航欄下方,但灰色背景某種程度上位於導航欄下方。 如果我將標簽視圖的高度設置為75px,它將開始出現在導航欄下方。 (狀態欄和導航欄為22 + 44)

自動版式已禁用。

那么,為什么視圖容器從背景導航欄下方開始? (但不是內部標簽?)

從IOS7開始,我在ViewController中使用它,以便內容從導航欄下方而不是其下方開始。

if ([self respondsToSelector:@selector(edgesForExtendedLayout)]){
    self.edgesForExtendedLayout = UIRectEdgeNone;
}

我意識到,我可以設置主視圖的背景,或者使標簽特別大並為其提供背景,但是我想知道為什么它不能首先起作用。

編輯:我向此視圖添加了一個功能,當為某些UITextFields打開鍵盤時,主視圖將向上移動125px。 有趣的是,除了Label的View容器之外,整個視圖都發生了變化。 當父視圖前后移動時,該視圖保持不變。 標簽本身會上下移動。 因此,再次,中間視圖似乎鏈接到窗口,而不是實際的主視圖。

IB

在此處輸入圖片說明

檢查您是否已打開“調整滾動”視圖插圖!

轉到視圖控制器,它在“屬性”檢查器下

如果您只想在導航欄下方發布消息或說明,則可能需要考慮標題單元格。 然后,您可以避免多余的UIView。 如果您擔心的話,標題單元格將不會與表格視圖一起滾動,並且將位於導航欄的正下方和其余表格單元格的上方。 這是一個使用自定義標題單元格設置背景顏色的簡化示例。 如果選擇,還可以通過IB將UILabel等放入單元格中。

-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{  
    MyCustomHeaderCell *headerCell = [tableView dequeueReusableCellWithIdentifier:@"MyCustomHeaderCell"];
    headerCell.backgroundColor = [UIColor grayColor];
    return headerCell;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM