在应用捏合手势时更改UILabel的字体大小

时间:2012-11-23 06:08:42

标签: ios ios5 ios6

我正在创建一个应用程序,其UILabel可以被挤压,旋转。当我捏住UILabel时,它会变得像素化。我该如何解决这个问题?

4 个答案:

答案 0 :(得分:4)

假设UILabel是viewController的属性:

CGFloat pinchScale = pinchGesture.scale;
pinchScale = round(pinchScale * 1000) / 1000.0;

if (pinchScale < 1) {
        self.UILabel.font = [UIFont fontWithName:self.UILabel.font.fontName size:(self.UILabel.font.pointSize - pinchScale)];
}
else{
        self.UILabel.font = [UIFont fontWithName:self.UILabel.font.fontName size:(self.UILabel.font.pointSize + pinchScale)];
}

另外,将adjustsFontSizeToFitWidth设为是

答案 1 :(得分:2)

您可以通过

获得小圆圈的四舍五入
- (void)pinch:(UIPinchGestureRecognizer *)pinchGesture
   {
     CGFloat pinchScale = pinchGesture.scale;
     pinchScale = round(pinchScale * 1000) / 1000.0;

        YourLabel.font = [UIFont fontWithName:@"your font Name" size:Actual Font size+pinchScale];


   }

试试这可能有帮助。

答案 2 :(得分:1)

我让这个工作,尝试一下。

pinchScale2 = pinchGesture.scale;
pinchScale2 = round(pinchScale2 * 1000) / 1000.0;

if (pinchScale2 < pinchScale1)
{
        self.UILabel.font = [UIFont fontWithName:self.UILabel.font.fontName size:(self.UILabel.font.pointSize - pinchScale2)];
}
else
{
        self.UILabel.font = [UIFont fontWithName:self.UILabel.font.fontName size:(self.UILabel.font.pointSize + pinchScale2)];
}
pinchScale1 = pinchScale2;

答案 3 :(得分:0)

我让这个工作,试试。

CGFloat maxFontSize;
NSString* string = pTextLabel.text;

UIFont* pfont = [UIFont fontWithName:[pTextLabel font].fontName size:600];
[string sizeWithFont:pfont minFontSize:3 actualFontSize:&maxFontSize forWidth:pTextLabel.frame.size.width - 1 lineBreakMode: UILineBreakModeWordWrap];


UIFont* pStampFont = [UIFont fontWithName:[pTextLabel font].fontName size:maxFontSize];
[pTextLabel setFont:pStampFont];