3

将 UILabel 添加到缩放的 UIScrollview 问题时,我遇到了一个奇怪的问题。

我正在向缩放的 UIScrollview 1. UIImageView 2. UILabelView 添加两个视图

这里的代码用于在 UIScrollview 上添加 UIImageView

float recentZoomScaleValue = 4.5;
CGRect rect = CGRectMake(x, y, 150, 150);

UIImageView *signatureImage = [[UIImageView alloc]initWithFrame:rect];

[signatureImage setImage:image];
[signatureImage setFrame:rect];

//resize the frame to avoid the auto zoom
CGRect frame = signatureImage.frame;
frame.size.width /= recentZoomScaleValue;
frame.size.height /= recentZoomScaleValue;

[signatureImage setFrame:frame];

[self addSubView:signatureImage];

[self.scrollview addSubView:signatureImage];

这里的代码用于在 UIScrollview 上添加 UILabel

float recentZoomScaleValue = 4.5;
txtLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 600, self.fontSize)];

[txtLabel setText:@"loganathan is a good boy"];

[txtLabel setFont:[UIFont fontWithName:txtLabel.font.fontName size:self.fontSize]];

[txtLabel setTextColor:[UIColor redColor]];
[txtLabel setBackgroundColor:[UIColor clearColor]];
[txtLabel setAutoresizingMask:UIViewAutoresizingFlexibleHeight];

CGRect frame = signatureImage.frame;
frame.size.width /= recentZoomScaleValue;
frame.size.height /= recentZoomScaleValue;

[txtLabel setFrame:frame];

[self addSubview:txtLabel];

但问题是,当我尝试添加 UILabel 视图时,它会自动缩放。由于标签文本模糊。我不知道为什么以及是什么问题。我应该使用 CATextLayer 而不是 UILabel 吗?任何可能不胜感激的帮助。

谢谢

4

1 回答 1

0

contentsScale当 zoomScale 发生变化时,您必须将其设置为正确的值。或初始到当前的 zoomScale:

动态缩放示例:

- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(float)scale {
    [yourLabel.layer setContentsScale:scale*[[UIScreen mainScreen] scale]];
    [yourLabel.layer setNeedsDisplay];
}
于 2013-07-12T07:03:12.923 回答