【问题标题】:Using a pinch gesture to resize a UILabel使用捏合手势调整 UILabel 的大小
【发布时间】: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)。那么我应该怎么做才能让我的标签放大以适合框架呢?

【问题讨论】:

    标签: iphone ios xcode ipad


    【解决方案1】:

    我想,你已经搞定了。 adjustFontSizeToFitWidth 属性只会将字体大小 down 从它设置为的任何大小调整...那么如果标签的字体大小设置为非常大的值会发生什么?与标签的可能帧大小相比,大得令人难以置信?

    【讨论】:

    • 嗯,它是一个好的黑客。但是,一旦您开始向下缩放,由于某种原因,标签文本开始向下移动,越来越远离标签的高度。喜欢,所以你只能看到文字的上半部分。有什么想法吗?
    • 嗯。那么直接设置标签的字体大小可能会更好。
    【解决方案2】:
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-22
    • 2012-12-08
    • 1970-01-01
    相关资源
    最近更新 更多