gpt4 book ai didi

IOS 使用 CGSize 弃用方法创建文本大小

转载 作者:行者123 更新时间:2023-11-28 21:24:20 24 4
gpt4 key购买 nike

您好,我正在用这些代码重新创建文本大小

CGSize textSize = [self.text sizeWithFont:self.font
constrainedToSize:self.frame.size
lineBreakMode:self.lineBreakMode];

以上是贬值的。我们如何才能改变它以保持目的?

非常感谢任何帮助。谢谢!

我的整个功能目的是对齐 UIlable 顶部(垂直)

- (void)alignTop
{
CGSize textSize = [self.text sizeWithFont:self.font
constrainedToSize:self.frame.size
lineBreakMode:self.lineBreakMode];

CGRect textRect = CGRectMake(self.frame.origin.x,
self.frame.origin.y,
self.frame.size.width,
textSize.height);
[self setFrame:textRect];
[self setNeedsDisplay];
}

最佳答案

使用这个

 - (CGRect)boundingRectWithSize:(CGSize)size options:(NSStringDrawingOptions)options attributes:(nullable NSDictionary<NSString *, id> *)attributes context:(nullable NSStringDrawingContext *)context

或者使用这个

 - (CGSize)sizeWithAttributes:(nullable NSDictionary<NSString *, id> *)attrs

这是一个例子

+ (CGSize)neededSizeForText:(NSString*)text withFont:(UIFont*)font andMaxWidth:(float)maxWidth
{
NSStringDrawingOptions options = (NSStringDrawingUsesFontLeading|NSStringDrawingUsesLineFragmentOrigin);

NSMutableParagraphStyle * style = [[NSMutableParagraphStyle alloc] init];
[style setLineBreakMode:NSLineBreakByWordWrapping];
[style setAlignment:NSTextAlignmentRight];

NSDictionary *textAttibutes = @{NSFontAttributeName : font,
NSParagraphStyleAttributeName : style};

CGSize neededTextSize = [text boundingRectWithSize:CGSizeMake(maxWidth, 500) options:options attributes:textAttibutes context:nil].size;

return neededTextSize;
}

希望对你有帮助

关于IOS 使用 CGSize 弃用方法创建文本大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38675620/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com