我正在创建一个UILabel
可以捏合、旋转的应用程序。当我捏合时UILabel
,它会变得像素化。我该如何解决这个问题?
问问题
1822 次
4 回答
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
为YES
于 2012-11-27T15:00:21.737 回答
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];
}
试试这个可能会有所帮助。
于 2012-11-23T06:37:26.477 回答
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;
于 2013-02-11T14:47:47.403 回答
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];
于 2013-11-20T11:49:19.437 回答