`
zjjzmw1
  • 浏览: 1353986 次
  • 性别: Icon_minigender_1
  • 来自: 开封
社区版块
存档分类
最新评论

ios 获取光标的位置--动态改变textView的高度的时候用。

    博客分类:
  • iOS
阅读更多

 

//设置光标到输入文字的末尾

  NSUInteger length = m_textInput.text.length;

  m_textInput.selectedRange = NSMakeRange(length,0);

复制代码

 

- (BOOL)textViewShouldBeginEditing:(UITextView *)textView

{

    [selfaddToolBar];

    if ([textView.text isEqualToString:@"请输入..."]) {

        textView.text = @"";

    }

    if (kScreenHeight == 480) {

        [UIViewanimateWithDuration:0.3animations:^{

            [self.moScrollViewsetContentOffset:CGPointMake(0, 0) animated:YES];

            self.moScrollView.bottom -= 55;

        }];

    }

    CGSize sizeToFit = [textView.text sizeWithFont:[UIFont systemFontOfSize:17]

                                   constrainedToSize:CGSizeMake(232, CGFLOAT_MAX)

                                       lineBreakMode:NSLineBreakByWordWrapping];//此处的换行类型(lineBreakMode)可根据自己的实际情况进行设置

    if (sizeToFit.height > 40) {

        

        [self.moScrollViewsetContentOffset:CGPointMake(0, 0) animated:YES];

        self.moScrollView.bottom -= (sizeToFit.height-30);

    }

    

    returnYES;

}

- (void)textViewDidChange:(UITextView *)textView

{

//    NSRange  reservedRange = textView.selectedRange;

    textView.selectedRange = NSMakeRange(textView.text.length, 0);

    CGPoint cursorPosition = [textView caretRectForPosition:textView.selectedTextRange.start].origin;

//    NSLog(@"===%f,%f",cursorPosition.y,cursorPosition.x);

//    textView.selectedRange = reservedRange;

}

 

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text

{

    

    CGFloat heightNum = textView.contentSize.height;

//    NSLog(@"heightNum===%f",heightNum);

    CGPoint cursorPosition = [textView caretRectForPosition:textView.selectedTextRange.start].origin;

//    NSLog(@"===%f,%f",cursorPosition.y,cursorPosition.x);

    

 

    NSString * toBeString = [textView.text stringByReplacingCharactersInRange:range withString:text]; //得到输入框的内容

    

    if ([toBeString length] > 30) { //如果输入框内容大于20则弹出警告

        textView.text = [toBeString substringToIndex:30];

        return NO;

    }

    

    if ([text isEqualToString:@"\n"]) {

        heightNum = textView.contentSize.height+15;

    }else{

        heightNum = textView.contentSize.height;

    }

    if (cursorPosition.x<5) {

        heightNum = heightNum-20;

    }

//    if (heightNum >60) {

//       heightNum = heightNum - 30;

//    }

    if (heightNum > 30) {

        

        [textView setFrame:CGRectMake(textView.left, textView.top, textView.width, heightNum)];

        self.fifthView.frame = CGRectMake(self.fifthView.left, self.fifthView.top, self.fifthView.width, heightNum+10);

        self.fifthViewImg.height = self.fifthView.height;

        self.moScrollView.contentSize = CGSizeMake(320, 467+15+heightNum-30);

        [self.moScrollViewsetContentOffset:CGPointMake(0, heightNum-30) animated:YES];

    }

    

    UIImage *image = [UIImageimageNamed:@"儿童培训-修改资料-列表-.png"];

    UIImage *image1 = [image stretchableImageWithLeftCapWidth:310/2topCapHeight:40/2];

    self.fifthViewImg.image = image1;

    

    self.chageframView.top = self.fifthView.bottom;

    

    returnYES;

}

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics