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中的代码重新计算内容大小.