【发布时间】:2011-11-02 08:46:04
【问题描述】:
我正在创建一个水印以覆盖在图像视图的顶部。图像可以平移、缩放等。
我创建了一个水印视图类,当调整大小时,它会覆盖一个与边界一样大的文本标签。这很好用,并且随着图像的大小等而适当地调整大小。
现在我想旋转标签。一旦我应用转换,标签中的文本就会被截断。我认为我很接近,但我正在做一些愚蠢的事情,因为我是新手。有什么想法吗?
这是我的课:
@interface WatermarkView ()
- (CGFloat)biggestBoldFontForString:(NSString*)text inRect:(CGRect)rect;
@end
@implementation WatermarkView
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self)
{
// create a label that will display the watermark
mainLabel = [[UILabel alloc] initWithFrame:frame];
mainLabel.alpha = 0.35;
mainLabel.backgroundColor = [UIColor clearColor];
mainLabel.text = @"watermark";
mainLabel.font = [UIFont boldSystemFontOfSize:[self biggestBoldFontForString:mainLabel.text inRect:mainLabel.frame]];
mainLabel.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;
// rotate label to a random slanted angle
mainLabel.transform = CGAffineTransformMakeRotation(RANDOM_FLOAT(-M_PI/5, -M_PI/6));
[self addSubview:mainLabel];
}
return self;
}
- (void)dealloc
{
[mainLabel release];
[super dealloc];
}
- (CGFloat)biggestBoldFontForString:(NSString*)text inRect:(CGRect)rect
{
CGFloat actualFontSize = 200;
[text sizeWithFont:[UIFont boldSystemFontOfSize:200] minFontSize:1 actualFontSize:&actualFontSize forWidth:rect.size.width lineBreakMode:0];
return actualFontSize;
}
- (void)layoutSubviews
{
[super layoutSubviews];
mainLabel.font = [UIFont boldSystemFontOfSize:[self biggestBoldFontForString:mainLabel.text inRect:self.frame]];
}
@end
【问题讨论】:
-
你发现问题了吗?
-
你说'现在我要旋转标签',这是用户旋转设备的时候吗?
标签: ios xcode cocoa-touch