iOS:通过捏缩放UITextView?

Ale*_*987 8 iphone uitextview uigesturerecognizer ios uipinchgesturerecognizer

我有兴趣创建UITextView在键入文本时动态扩展,并在用户捏住屏幕时进行缩放(类似的行为可以在TinyPost中找到).

当你输入(没有捏)时,textView扩展正常.当你只是捏(没有打字)工作正常,但当你捏然后键入,内部文本被削减.

这是我的代码:

UIPinchGestureRecognizer *pinchGestRecognizer = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(scaleTextView:)];
        pinchGestRecognizer.delegate = self;
        [bgFrameImageView addGestureRecognizer:pinchGestRecognizer];

    - (void)scaleTextView:(UIPinchGestureRecognizer *)pinchGestRecognizer{
        createTextView.transform = CGAffineTransformScale(createTextView.transform, pinchGestRecognizer.scale, pinchGestRecognizer.scale);

        pinchGestRecognizer.scale = 1;        
    }

    - (void)textViewDidChange:(UITextView *)textView{

        CGSize textSize = textView.contentSize;

        textView.frame = CGRectMake(CGRectGetMinX(textView.frame), CGRectGetMinY(textView.frame), textSize.width, textSize.height); //update the size of the textView  
    }
Run Code Online (Sandbox Code Playgroud)

你怎么看?

k20*_*k20 12

尝试:

- (void)scaleTextView:(UIPinchGestureRecognizer *)pinchGestRecognizer{
     CGFloat scale = pinchGestRecognizer.scale;

    createTextView.font = [UIFont fontWithName:createTextView.font.fontName size:createTextView.font.pointSize*scale];

    [self textViewDidChange:createTextView];       
}
Run Code Online (Sandbox Code Playgroud)

它基本上缩放字体大小,然后使用textViewDidChange中的代码重新计算内容大小.