2013-03-14 88 views
2

我需要動態地將文本字段添加到滾動視圖。我能夠做到這一點,添加後我每次都會計算和更新滾動視圖的內容大小。UIScrollView contentSize被重置

更新內容大小後,我可以在屏幕上查看它,一旦我編輯文本字段(鍵盤消失),我將內容大小重置爲原始值。我在這裏錯過了什麼嗎?滾動視圖是通過xib創建的。

+2

請告訴我問題,截圖和代碼會有所幫助。 – 2013-03-14 11:38:02

+0

發佈您的代碼放置在文本中提交委託方法。 – Balu 2013-03-14 11:39:07

回答

0

您可以跟蹤上一次textFiled的y位置。

現在在將所有textField添加到ScrollView之後使用下面的行。

[scrollView setContentSize:CGSizeMake(320, yPos)]; 

和鍵盤發出用戶下面的代碼。

- (BOOL)textFieldShouldReturn:(UITextField *)textField{ 

[textField resignFirstResponder]; 
[scrollView setContentSize:CGSizeMake(320, yPos)]; 
return YES; 
} 

希望這會幫助你。

所有最好的!

0
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField 
    { 
     self.scrollView.frame = CGRectMake(0, 0, 320, 240);// set height of self.scrollView.frame, as you need. 
     return YES; 
    } 

    - (BOOL)textFieldShouldReturn:(UITextField *)textField 
    { 

     [self.txtFieldName resignFirstResponder]; 
     . 
     , 
     . 

     self.scrollView.frame = CGRectMake(0, 0, 320, 460); // set height of self.scrollView.frame, as you need. 
     [self.scrollView setContentSize:CGSizeMake(320, 465)]; // set height of self.scrollView.ContentSize, as you need. 

     return YES; 
    } 
+0

請看這個示例http://tbf.me/a/9llOl。請在添加新字段之前以及添加新字段之前嘗試編輯字段 – user2169496 2013-03-18 10:20:12

0

viewDidLoad方法,

y = 500; // As you wish 

scrMain.delegate = self; 
scrMain.contentSize = CGSizeMake(320, y); 

那麼,對於文本框進入

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField 
{ 
    scrMain.contentSize = CGSizeMake(320, y + 50); 
} 

回車鍵後,

- (BOOL)textFieldShouldReturn:(UITextField *)textField{ 

    [textField resignFirstResponder]; 

    scrMain.contentSize = CGSizeMake(320, y); 
    return YES; 
} 
+0

我確實在類變量中保留了新的內容大小,然後在鍵盤返回時將其重置。 這不幸與視圖切換代碼(當鍵盤出現時將視圖向上移動,以使文本字段變爲可見區域的代碼相符)。 僅僅調用[mScrollView setContentSize:mScrollContentSize];令我很多其他功能都感到不安。 我不明白爲什麼內容大小應該重置,當鍵盤出現並消失時。 我輸了! – user2169496 2013-03-18 08:38:29

+1

只是想到會發布解決方案。這與自動佈局有關。取消選中自動佈局解決了一半問題,而Apple的鍵盤編程指南則固定了另一半。有一種想法我會提及(如果它有幫助),即使應用程序處於橫向模式,鍵盤大小始終以縱向模式返回。同樣,一旦自動佈局關閉,滾動的contentSize將在viewDidAppear方法中手動設置。 – user2169496 2013-03-20 06:02:40

+0

即使應用處於橫向模式,鍵盤大小始終以縱向模式返回。 - >沒有得到這個。 – 2013-03-20 06:08:55

相關問題