2012-01-03 98 views
0

我想在運行時調整我的滾動視圖的內容大小。我可以做到這一點,如果我真的自己設置值,但是當我嘗試賦予新值後做最後一個對象的計算它不工作3!我猜這是因爲我沒有正確設置我的int。任何幫助總是讚賞傢伙調整大小uiscrollview contentSize,不能應用新值

這工作:

[scroller setContentSize: CGSizeMake(scroller.frame.size.width ,scroller.frame.size.height*2)]; 

不工作:

int newHeight=textViewRect.origin.y+textViewRect.size.height+5; 
    [scroller setContentSize: CGSizeMake(scroller.frame.size.width ,newHeight)]; 

編輯:

CGRect textViewRect=textView.frame; 
textViewRect=CGRectMake(textViewRect.origin.x, textViewRect.origin.y, textViewRect.size.width, textViewRect.size.height); 

也許這:

那份newHeight值錯了與viewDidLoad方法中的事實有什麼關係?

感謝您的幫助

+0

newHeight變量的值是什麼? – Robin 2012-01-03 11:51:10

+0

67,但textView從view.origin.y = 66開始,textView的高度延伸到視圖邊界以下 – d4ndym1k3 2012-01-03 11:56:37

回答

0

我所做的是子類uiwebview使用它作爲textView。將數據傳遞給我的子類後,我將其加載到Web視圖中,一旦加載,然後將其框架調整爲webViewDidFinishLoading方法中的內容大小。

因爲這個原因,文本視圖被添加到視圖之前有幾毫秒的延遲,這意味着我得到的值是0.爲了解決這個問題,我添加了一個委託方法給我的子類來通知我當它完成加載時。一旦它完成加載我然後相應地調整contentSize。

0

將斷點過線

int newHeight=textViewRect.origin.y+textViewRect.size.height+5; 

並找到newHeight值。如果該值小於scroller的高度,則無法滾動。

+0

我很困惑,爲什麼我需要一個斷點?我認爲我的問題是int的分配不正確 – d4ndym1k3 2012-01-03 11:47:45

+0

通常使用斷點來查找每個語句中的值。您也可以使用'NSLog'來查找值。 – Ilanchezhian 2012-01-03 11:49:03

+0

我試過,我的應用程序崩潰。我嘗試%i和%d爲字符串格式 – d4ndym1k3 2012-01-03 11:50:11