在 UIView 上缩放 UITextView 的字体大小

Posted

技术标签:

【中文标题】在 UIView 上缩放 UITextView 的字体大小【英文标题】:Scale font size UITextView on UIView 【发布时间】:2016-01-17 21:48:28 【问题描述】:

我的UIView 上添加了UITextView。它只是显示一个字符串。 当我将UIPinchGestureRecognizer 添加到我的UIView 时:

UIPinchGestureRecognizer * pinchGR = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(handlePinch:)];
pinchGR.delegate = self;
[self addGestureRecognizer:pinchGR];

然后我处理我的 UIView 的操作并在 UITextView 中缩放字体大小

- (void)handlePinch:(UIPinchGestureRecognizer *)recognizer 
recognizer.view.transform = CGAffineTransformScale(recognizer.view.transform, recognizer.scale, recognizer.scale);
CGFloat currentSize = _textView.font.pointSize;
CGFloat toSize = currentSize * recognizer.scale ;
[_textView setFont:[UIFont systemFontOfSize:toSize]];
recognizer.scale = 1;

这是我的结果,我的UITextView 显示非常糟糕(不透明)

我怎样才能像 Snapchat 一样做到这一点?

请给我一些想法。

【问题讨论】:

抱歉,这还不清楚。您要解决的问题是什么? @rmaddy 我已经更新了 textView 的字体大小,但文本仍然看不清楚 【参考方案1】:
-(void)handlePinchWithGestureRecognizer:(UIPinchGestureRecognizer *)pinchGestureRecognizerher //UIFont *font = txtqutoes.font;
CGFloat pointSize = font.pointSize;
NSString *fontName = font.fontName;
UIFont *font = textview.font;

pointSize = ((pinchGestureRecognizer.velocity > 0) ? 1 : -1) * 1 + pointSize;

if (pointSize < 13) pointSize = 13;
if (pointSize > 80) pointSize = 80;

textview.font = [UIFont fontWithName:fontName size:pointSize];

试试这个!!!...

【讨论】:

以上是关于在 UIView 上缩放 UITextView 的字体大小的主要内容,如果未能解决你的问题,请参考以下文章

iPad 上带有 UITextView 的 InputAccessoryView

自动调整包含 UITextView 的 UIView

在 UITextView 编辑时移动 UIView

在缩放/变换上强制重绘 UIView 或 CALayer

您如何将 UITextView 居中作为 UIView 的子视图?

在缩放的 CGRect iOS 上显示 UIView