Textfield与键盘上的UIView文本重叠

时间:2013-05-31 22:16:36

标签: iphone ios objective-c

我正在研究iOS应用程序,在其中一个视图中,我必须加载用户评论以及让他们发表评论。一切看起来都很好,直到用户点击文本字段上的键盘输入注释。 UIView上的文本与textfield重叠,如下所示。

enter image description here

感谢您一看。

4 个答案:

答案 0 :(得分:4)

在iOS中,通常会将启用键盘的视图中的所有视图元素添加到UIScrollView中。这样,当键盘向上滑动时 - 其他元素向上滑动以避免被遮挡。

幸运的是,有人已经实现了一个自动避开键盘的UIScrollView,所以你只需要将视图元素插入到其中一个中,一切都应该完美。

https://github.com/michaeltyson/TPKeyboardAvoiding

答案 1 :(得分:1)

当用户点击textField时,假设UITextField和UIButton(“Post”)向上移动,你应该同时将其上面的所有内容移动到相同的距离。

答案 2 :(得分:1)

屏幕上只有一点点文字,你必须使用UIScrollView。然后,您可以使用[self.scrollView setContentOffset:CGPointMake(0, offset) animated:YES];向上或向下移动与键盘相关的文本。

答案 3 :(得分:0)

使用inputAccessoryView作为帖子按钮和UITextField。 像这样:

-(void)addAccessoryViewOnTextView
{
    UIToolbar *keyboardHeaderView = [[UIToolbar alloc]initWithFrame:CGRectMake(0, 0, 1024, 39)];

    keyboardHeaderView.tintColor = [UIColor blackColor];

    /* Here use your post button and textfield.
    UIBarButtonItem *nextBtn= [[UIBarButtonItem alloc]initWithTitle:@"Next" style:UIBarButtonItemStyleDone target:self action:@selector(nextEvent:)];
     UIBarButtonItem *prevBtn= [[UIBarButtonItem alloc]initWithTitle:@"Previous" style:UIBarButtonItemStyleDone target:self action:@selector(prevEvent:)];
    UIBarButtonItem *doneBtn= [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(doneEvent:)];*/

    UIBarButtonItem *flexibleSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
    [keyboardHeaderView setItems:[NSArray arrayWithObjects: doneBtn,flexibleSpace,prevBtn, nextBtn, nil]];

    [yourTextField setInputAccessoryView:keyboardHeaderView];
    keyboardHeaderView = nil;

}
  

并在viewDidLoadUITextField初始化的任何地方调用此方法。