Iphone 它的用途是什么?

Iphone 它的用途是什么?,iphone,objective-c,xcode,Iphone,Objective C,Xcode,如何使用CGRectIntegral函数?我明白它的目的 不清楚它的确切用途。cRectIntegral可将任何十进制值转换为其整数等价项。 看到的图像可能是你能理解的 我怎么修理它 frame = CGRectIntegral(frame); -或- 请参见此一种特殊用法是修复与屏幕像素不完全对齐的帧 见这个问题: 如果标签或文本字段的帧在渲染到屏幕时未与像素对齐,则文本将显示为模糊。如果使用“分割”(例如在父视图中居中)计算帧,则可能会发生这种情况 CGRectIntegral将删除帧的

如何使用CGRectIntegral函数?我明白它的目的


不清楚它的确切用途。

cRectIntegral可将任何十进制值转换为其整数等价项。
看到的图像可能是你能理解的

我怎么修理它

frame = CGRectIntegral(frame);
-或-


请参见此

一种特殊用法是修复与屏幕像素不完全对齐的帧

见这个问题:

如果标签或文本字段的帧在渲染到屏幕时未与像素对齐,则文本将显示为模糊。如果使用“分割”(例如在父视图中居中)计算帧,则可能会发生这种情况


CGRectIntegral
将删除帧的小数部分,从而解决此问题。然而,请注意,对于视网膜显示,0.5帧的值是像素对齐的,但CGRectIntgral仍将删除小数部分。

CGRectIntegral
方法用于创建整数rect。我的意思是假设若你们在应用程序中计算帧,你们可能会得到float中的帧值

将浮点值设置为某个UIElement(如
UILabel
)的帧会使文本看起来模糊。为了避免这种情况,我们使用了
CGRectIntegral

NSLog(@"%@",NSStringFromCGRect(   CGRectIntegral(CGRectMake(0, 15.6, 16.1, 20.2))));
这将打印,{0,15},{17,21}

这个解释可以在头文件中找到

/* Expand `rect' to the smallest rect containing it with integral origin and
   size. */

左侧的图像有点模糊,因为帧设置在像素边界上。所以原点大概是20.5,8.5。CGRectIntegral将其捕捉回20、8。如果您希望在iOS模拟器中以紫色突出显示模糊图像,请选择“调试>颜色未对齐图像”。这样,你就不必眯着眼睛到处看,就能知道哪些东西是模糊的。重要的是要补充一点:CGRectIntegral用于填充/绘制像素缓冲区。笔划形状围绕其坐标居中,因此实际上可能需要非整数(例如,1x屏幕上的0.5)坐标才能使它们看起来清晰。有关更详细的说明,请参见此处:
/* Expand `rect' to the smallest rect containing it with integral origin and
   size. */