2012-12-07 122 views
0

我有一個視圖頂部有一個表視圖,表視圖下面有一個滾動視圖。 當我按下調整大小欄按鈕項目時,我想隱藏表格視圖並最大化滾動視圖。我得到滾動視圖和表視圖來正確動畫,但我試圖調整滾動視圖內的UITextView以利用額外的屏幕空間。UITextView沒有正確調整大小

每當我計算調整大小,UITextView去屏幕的左上角,我不知道爲什麼。我甚至沒有修改X和Y,只是高度。

CGRect newDesFrame = descriptionTextView.bounds; 
newDesFrame.size.height = newDesFrame.size.height + tableViewFrame.size.height; 
[UIView beginAnimations:nil context:NULL]; 
[UIView setAnimationDuration:.5]; 

self.scrollView.frame = scrollFrame; 
self.descriptionTextView.frame = newDesFrame; 

[UIView commitAnimations]; 

我不知道爲什麼會發生這種情況。 descriptionTextView.bounds由於在UIScrollView內的UIView?看起來,當我做一個滾動視圖的X和Y的NSLog時,它是0,0。這很奇怪,因爲它不是在超視圖中的0,0或視圖中。我該如何解決?

回答

1

descriptionTextView很可能會跳到左上角,因爲您實際上正在更改原點(x和y)。您從開始:

CGRect newDesFrame = descriptionTextView.bounds; 

獲取該文本視圖的邊界會給你的0,0原點的的CGRect,爲「界」給你的觀點在自己的矩形,局部座標空間。

試試這個:

CGRect newDesFrame = descriptionTextView.frame; 

這將使你在它的父座標空間視圖的矩形,包括實際產地。

+0

真棒,工作!感謝您的解釋。我想我不應該混合使用邊界和框架。它的調整方式很好,比使用兩個邊界更好。 – Alan

1

這是因爲你在做 self.descriptionTextView.frame = newDesFrame(這是Bounds屬性,不是幀!要了解不同Link

解決方案:

self.descriptionTextView.bounds = newDesFrame

+0

@Bodgan非常感謝你!我會閱讀你提供的鏈接。再次感謝! – Alan

相關問題