2012-07-03 29 views
3

我需要一個動態調整大小的UITextView,但右邊緣在多次調整大小後向左侵入左側,以便在文本視圖中顯示非常窄的文本帶有大量空白區域。只需使用UITextView和UISlider即可進行簡單設置。產生此行爲的簡單的示例的設置是與UISlider值範圍從0-200,320寬度的一個UITextView和此代碼:動態調整大小的越野車邊距行爲UITextView

- (IBAction)sliderValueChanged:(UISlider *)slider { 
    textView.frame = CGRectMake(0, 0, 320 - slider.value, 300); 
} 

有些東西我試圖與autoResizingMask,contentMode,contentOffset被修補,和sizeToFit但他們都沒有工作。這種奇怪的行爲如何避免,或者它是一個錯誤?

回答

4

子類UITextView並覆蓋layoutSubViews以將frame設置爲CGRectZero然後回到原始幀大小。這不是優雅,但它的作品。

-(void) layoutSubviews 
{ 
    CGRect rect = [self frame]; 
    [self setFrame:CGRectZero]; 
    [self setFrame:rect]; 
} 
+1

確實有效。也適用:在設置需要的幀之前設置textView.frame = CGRectZero。 (在這種情況下之前:textView.frame = CGRectMake(0,0,320 - slider.value,300);)。 – krafter

+0

太棒了。一直在尋找這個! –