2013-09-16 64 views
0

我想在中心顯示UITextView,動態顯示3.5英寸和4英寸顯示。但它有頂部和底部'填充'20點。用浮動數字變量更改UITextView

所以我創建這個代碼來衡量的UIView的高度:

CGFloat screenHeight = _screen.frame.size.height; 
float scrollHeight = screenHeight - 40; 

然後我加入這行來設置屏幕:

_screen.frame = CGRectMake(20, 40, 320, scrollHeight); 

,但我看到我的4英寸的iPod touch沒有區別。 .. 我做錯了什麼?

UPDATE: 這裏是我的.h文件:

@property (strong, nonatomic) IBOutlet UIView *screen; 

,這裏是我的.m文件:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    CGFloat screenHeight = [UIScreen mainScreen].bounds.size.height; 
    _screen.frame = CGRectMake(20, 40, 320, screenHeight); 
} 
+0

嘗試translatesAutoresizingMaskIntoConstraints = NO在textView的超級視圖。 – danh

回答

1

你可以在屏幕的信息肯定是這樣的:

screenWidth = [UIScreen mainScreen].bounds.size.width; 
screenHeight = [UIScreen mainScreen].bounds.size.height; 
CGRect statusBarFrame = [[UIApplication sharedApplication] statusBarFrame]; 

你可以用這些動態地計算出你想要的每個高度或寬度,以及你的視圖w生病得到了正確的框架。

編輯:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    CGFloat screenHeight = [UIScreen mainScreen].bounds.size.height; 
    _screen.frame = CGRectMake(20, 40, 320, screenHeight); 
} 

這會讓你的_SCREEN將開始在40,它會在底部40掛出了。

如果你想使一箇中心的觀點

使它像這樣:

_screen.frame = CGRectMake(20, 40, screenWidth-40, screenHeight-80); 

,不要忘記到屏幕添加到上海華這樣的:

[self.view addSubview:_screen]; 

我希望它能幫助。 還有一個提示:如果您設置_screen.backgroundcolor = [UIColor orangeColor];進行測試,您可以看到您的_screen框架!

+0

我試過你的代碼:CGFloat screenHeight = [UIScreen mainScreen] .bounds.size.height; _screen.frame = CGRectMake(20,40,320,screenHeight); 但結果仍然相同... UITextView仍然沒有動態高度。 –

+1

你能告訴我完整的代碼,你在哪裏創建超視圖?它必須工作。我在每個項目中使用這些代碼,並且完美地工作。 – incmiko

+0

謝謝,兄弟...看到我上面的更新... –