2012-11-23 43 views
0

我正在创建一个应用程序,其中可以捏,旋转的UILabel。当我捏在UILabel,它变得像素化。我该如何解决这个问题?应用捏手势更改UILabel的字体大小

+0

什么对象正在处理捏和旋转手势?它是“UILabel”吗?还是它实际上是标签对象所在的视图? –

+0

它是正在处理的标签 –

回答

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]; 


    } 

得到pinchgesture的四舍五入规模试试这可能这种帮助。

+0

No.It没有工作 –

3

假设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为YES

+0

没有。它没有工作 –

+0

它的工作原理,我用它在我的应用程序。请添加一条错误消息 – Eric

+1

它不工作,因为标签的字体大小变得过大,使标签在捏上时下降 –

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; 
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];