1、自定义的HMTextView需要有拖拽的功能,这里的HMTextView继承自UITextView,而UITextView继承自UIScrollView。所以这里的HMTextView具有拖拽的功能。 2、在setupTextView中加入textView.alwaysBounceVertical = YES; // 垂直方向上拥有有弹簧效果 即可拥有拖拽效果。
3、当拖拽HMTextView时,键盘应该退下。监听拖拽,需要成为UIScrollView的代理,遵守UIScrollView的协议。而UITextView的协议,已经遵守了UIScrollView的协议,所以这里只遵守UITextView的协议即可。也就拥有了UIScrollView代理的方法。这里监听textView的滚动也就是监听scrollView的滚动。 4、遵守的协议。 -scrollviewDidScroll的方法调用太频繁,这里使用- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView方法。 #pragma mark - UITextViewDelegate /** * 当用户开始拖拽scrollView时调用 */ - (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView { [self.view endEditing:YES];//退出键盘。 } 5、进入发微博界面时,自动弹出键盘。若此方法写在viewdidload方法中,会有延迟,会造成卡顿的感觉,应该将此方法写在- (void)viewDidAppear:(BOOL)animated中。/** * view显示完毕的时候再弹出键盘,避免显示控制器view的时候会卡住 */ - (void)viewDidAppear:(BOOL)animated { [super viewDidAppear:animated]; // textView成为第一响应者(叫出键盘) [self.textView becomeFirstResponder]; } |
|
来自: 雪柳花明 > 《ios 开发项目遇到的问题》