【发布时间】:2019-04-07 12:30:36
【问题描述】:
我想让用户通过捏合手势调整 UILabel 的大小。单独使用 CGAffineTransformScale 是不行的,因为标签中的文本在放大时会变得模糊。
所以我实际上正在做的是使用 CGAffineTransformScale 来显示它的放大、保存帧大小、恢复变换标识并最终确定帧大小。一个简单的切换器,但它可以工作。
-(void)handlePinch:(UIPinchGestureRecognizer *)recognizer{
if(recognizer.state == UIGestureRecognizerStateBegan){
startingTransform = self.transform;
}
recognizer.view.transform = CGAffineTransformScale(recognizer.view.transform, recognizer.scale, recognizer.scale);
recognizer.scale = 1;
if (recognizer.state == UIGestureRecognizerStateEnded){
CGRect endFrame = self.frame;
self.transform = startingTransform;
self.frame = endFrame;
}
}
最终结果是为 UILabel 调整大小的框架。但是,文本不会按比例放大以适合标签。此外,属性 adjustsFontSizeToFitWidth 仅适用于向下缩放,而不是向上缩放 (reference)。那么我应该怎么做才能让我的标签放大以适合框架呢?
【问题讨论】: