2012-11-12 41 views
0

我使用「單一視圖」應用程序模板啓動Xcode的項目,並在viewDidLoad添加了兩行的模板創建的視圖控制器類的設置的視圖:使用範圍的插圖

UITextView *textView = [[UITextView alloc] initWithFrame:CGRectInset(self.view.bounds, 10, 10)]; 
[self.view addSubview:textView]; 

當我運行這在iPhone模擬器的3.5英寸,textview從屏幕的底部延伸。我打算將它放置在屏幕的中心,並有10個邊框。

我缺少一些基本的東西嗎?看來工作在4" 模擬器罰款。它是一個模擬器錯誤?

回答

3

這不是在模擬器中的錯誤。

Xcode的模板,包括廈門國際銀行,並在廈門國際銀行是視圖控制器的頂級當系統發送viewDidLoad到視圖控制器水平視圖(self.view),以及該視圖的尺寸爲iPhone 5屏幕。

,它尚未調整該視圖用於當前裝置的屏幕大小。所以,你的文本視圖的框架是基於iPhone 5屏幕的大小。

您可以解決這個問題設置您的視圖中的自動尺寸標誌:

UITextView *textView = [[UITextView alloc] initWithFrame:CGRectInset(self.view.bounds, 10, 10)]; 
[self.view addSubview:textView]; 
textView.autoresizingMask = UIViewAutoresizingFlexibleHeight 
    | UIViewAutoresizingFlexibleWidth; 

您的廈門國際銀行設置默認使用自動佈局,所以你也可以讓系統根據您的文本視圖和您的頂級視圖之間設置約束調整您的文本視圖:

UITextView *textView = [[UITextView alloc] initWithFrame:CGRectInset(self.view.bounds, 10, 10)]; 
[self.view addSubview:textView]; 
textView.translatesAutoresizingMaskIntoConstraints = NO; 
[self.view addConstraints:[NSLayoutConstraint 
    constraintsWithVisualFormat:@"H:|-10-[textView]-10-|" options:0 metrics:nil 
    views:NSDictionaryOfVariableBindings(textView)]]; 
[self.view addConstraints:[NSLayoutConstraint 
    constraintsWithVisualFormat:@"V:|-10-[textView]-10-|" options:0 metrics:nil 
    views:NSDictionaryOfVariableBindings(textView)]]; 

如果你把你的文本視圖在廈門國際銀行,而不是在代碼中創建它,你可以使用廈門國際銀行的編輯器(又名「界面生成器」或「IB」)設立的限制。我強烈建議觀看自動佈局視頻從WWDC 2012

  • 會話202 - 介紹自動佈局iOS和OS X
  • 會話228 - 最佳實踐掌握自動佈局
  • 會話232 - 自動佈局的實例
+0

當然 - 感謝您的詳細回覆。 –