2

我有一个文本字段,当用户单击时会向上滑动键盘。然后滚动视图调整,以便您可以阅读您正在输入的内容。

我的问题是,一旦这样,我想让用户继续在屏幕上滚动。如何才能做到这一点?

4

3 回答 3

0

第1部分:

滚动视图的内容大小实际上与其包含的视图的大小或位置无关。如果要更改内容视图的大小以及滚动视图的内容,则需要调用两种不同的方法。

 CGSize newSize;
 UIScrollView *scrollView;
 // assume self is the content view
 CGRect newFrame = (CGRect){CGPointZero,newSize}; // Assuming you want to start at the     top-left corner of the scroll view. Change CGPointZero as appropriate
  [  scrollView setContentSize:newSize]; // Change scroll view's content size
  [self setFrame:newFrame]; // Change views actual size

第2部分:

setNeedsDisplay 将整个视图标记为需要显示。要使其仅显示可见部分,您需要使用 setNeedsDisplayInRect:visibleRect。假设视图位于左上角(其框架的原点为 0)并且滚动视图不允许缩放,则可以使用滚动视图的内容偏移量和边界大小找到可见的矩形。

  CGRect visibleRect;
  visibleRect.origin = [scrollView contentOffset];
  visibleRect.size = [scrollView bounds].size;
  [self setNeedsDisplayInRect:visibleRect];

如果仅部分更改,您也可以选择绘制可见矩形的一部分。

您还可以查看以下示例:

TPKeyboardAvoiding

于 2013-02-19T09:29:37.540 回答
-1
- (void)viewDidLoad
 {
[super viewDidLoad];

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(keyboardWasShown:)
                                             name:UIKeyboardDidShowNotification
                                           object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(keyboardWasShown:)
                                             name:UIKeyboardWillHideNotification
                                           object:nil];
 }



- (void)keyboardWasShown:(NSNotification *)notification
 {
     // To avoid keyboard hides the view
CGRect frame = self.view.bounds; 
if (capitalTextField.enabled ==YES) 
{
    if ([notification name]== UIKeyboardDidShowNotification ) 
    {

        frame.origin.y += 200;
        [self.scrollView scrollRectToVisible:frame animated:YES];
    }
    else
    {
        frame.origin.y -= 200;
        [self.scrollView scrollRectToVisible:frame animated:YES]; 
    }
  }
}
于 2013-02-19T09:35:20.707 回答
-1

只需增加 Scrollview 的 contentsize 属性的高度

于 2013-02-19T09:40:29.793 回答