我创建了一个水印视图类,当调整大小时,会覆盖一个与边界一样大的文本标签.由于图像尺寸等,这种方法非常适用并且尺寸合适.
现在我想旋转标签.只要应用变换,标签中的文本就会截断.我认为我很接近,但我做的事情很愚蠢,因为我是新手.有任何想法吗?
这是我的班级:
@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解决方法 一个简单的解决方案可能是简单地创建第二个标签,就像第一个标签一样,但适应旋转视图.保持隐藏或Alpha = 0,然后在旋转时隐藏初始textVIEw并取消隐藏新文本.
另一个问题可能是您的框架太小,一旦旋转,请尝试保持字体您想要的大小和文本对齐中心,但使TextVIEw框架比您认为需要的大得多.
总结以上是内存溢出为你收集整理的ios – UILabel文本在旋转时截断.怎么修?全部内容,希望文章能够帮你解决ios – UILabel文本在旋转时截断.怎么修?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)