gpt4 book ai didi

iphone - NSString sizeWithFont :constrainedToSize: returning incorrect height on retina displays

转载 作者:行者123 更新时间:2023-12-03 18:40:03 27 4
gpt4 key购买 nike

我想我已经找到了 sizeWithFont:constrainedToSize: 的边缘情况,其中,在视网膜显示屏上,有时(似乎基于自动换行)返回的高度比实际需要的高度高 1 行,更重要的是比实际需要的高度高 1 行它实际上会绘制。

注意:我使用的真实代码隐藏在以性能为中心的手绘可变高度 TableView 单元格代码中,因此我将问题简化为尽可能简单的示例代码。 (当尝试回答我的问题以外的问题时请注意这一点:-)

此示例 UIView 填充其内容,测量文本以适合(换行),填充该矩形,然后绘制文本。

在视网膜设备(或模拟器)上,高度返回 1 行太高,但在前视网膜设备(或模拟器)上,它返回正确的高度。

我非常感谢任何人可能有的见解,因为这是我想修复的错误!

非常感谢!

-埃里克

- (void)drawRect:(CGRect)rect {
NSString * theString = @"Lorem ipsum dolor sit ameyyet, consectetur adipiscing elit. Etiam vel justo leo. Curabitur porta, elit vel.";
UIFont * theFont = [UIFont systemFontOfSize:12];
CGSize theConstraint = CGSizeMake(rect.size.width - 20, rect.size.height - 20);
CGSize theResultSize = [theString sizeWithFont:theFont constrainedToSize:theConstraint];

// dump the measurements
NSLog(@"returned a size h = %f, w = %f", theResultSize.height, theResultSize.width);

// fill the whole rect
CGContextRef context = UIGraphicsGetCurrentContext();
[[UIColor yellowColor] set];
CGContextFillRect(context, rect);

// fill the measured rect
CGRect theRect = CGRectMake(10, 10, theResultSize.width, theResultSize.height);
context = UIGraphicsGetCurrentContext();
[[UIColor cyanColor] set];
CGContextFillRect(context, theRect);

// draw the text
[[UIColor blackColor] set];
[theString drawInRect:theRect withFont:theFont];
}

整个简单项目可用here .

模拟器图像:
http://files.droplr.com/files/9979822/aLDJ.Screen%20shot%202011-01-11%20at%2012%3A34%3A34.png http://files.droplr.com/files/9979822/YpCM.Screen%20shot%202011-01-11%20at%2012%3A36%3A47.png

最佳答案

这似乎是您的模拟器的问题。这是我在 OS 4.3.2 上使用 Retina 模拟器运行它时得到的结果

enter image description here

关于iphone - NSString sizeWithFont :constrainedToSize: returning incorrect height on retina displays,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4662441/

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