我正在开发 iOS 应用程序,在其中一个视图中,我必须加载用户评论并让他们发表评论。一切看起来都很好,直到用户点击文本字段以输入评论时出现键盘。UIView 上的文本与文本字段重叠,如下所示。
谢谢你看看。
我正在开发 iOS 应用程序,在其中一个视图中,我必须加载用户评论并让他们发表评论。一切看起来都很好,直到用户点击文本字段以输入评论时出现键盘。UIView 上的文本与文本字段重叠,如下所示。
谢谢你看看。
在 iOS 中,习惯上将启用键盘的视图中的所有视图元素添加到 UIScrollView 中。这样,当键盘向上滑动时 - 其他元素也会随之向上滑动以避免被阻挡。
幸运的是,有人实现了一个 UIScrollView 自动避开键盘,所以你只需要将你的视图元素插入其中之一,一切都应该正常工作。
假设当用户点击 textField 时 UITextField 和 UIButton("Post") 向上移动,您应该同时将其上方的所有其他内容移动相同的距离。
屏幕上不仅仅是一点点文本,您将不得不使用 UIScrollView。然后,您可以使用[self.scrollView setContentOffset:CGPointMake(0, offset) animated:YES];
相对于键盘向上(或向下)移动文本。
用于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
初始化的地方或任何地方调用此方法。