我正在研究iOS应用程序,在其中一个视图中,我必须加载用户评论以及让他们发表评论。一切看起来都很好,直到用户点击文本字段上的键盘输入注释。 UIView上的文本与textfield重叠,如下所示。
感谢您一看。
答案 0 :(得分:4)
在iOS中,通常会将启用键盘的视图中的所有视图元素添加到UIScrollView中。这样,当键盘向上滑动时 - 其他元素向上滑动以避免被遮挡。
幸运的是,有人已经实现了一个自动避开键盘的UIScrollView,所以你只需要将视图元素插入到其中一个中,一切都应该完美。
答案 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;
}
并在
viewDidLoad
或UITextField
初始化的任何地方调用此方法。