iOS   发布时间:2022-05-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – UILabel文本在旋转时截断.怎么修?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我正在创建一个叠加在图像视图顶部的水印.图像可以平移,缩放等. 我创建了一个水印视图类,当调整大小时,会覆盖一个与边界一样大的文本标签.由于图像尺寸等,这种方法非常适用并且尺寸合适. 现在我想旋转标签.只要应用变换,标签中的文本就会截断.我认为我很接近,但我做的事情很愚蠢,因为我是新手.有任何想法吗? 这是我的班级: @interface WatermarkView () - (CGFloat)b
我正在创建一个叠加在图像视图顶部的水印.图像可以平移,缩放等.

我创建了一个水印视图类,当调整大小时,会覆盖一个与边界一样大的文本标签.由于图像尺寸等,这种方法非常适用并且尺寸合适.

现在我想旋转标签.只要应用变换,标签中的文本就会截断.我认为我很接近,但我做的事情很愚蠢,因为我是新手.有任何想法吗?

这是我的班级:

@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文本在旋转时截断.怎么修?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。