CGRectIntegral有什么用法?

aks*_*i56 31 iphone xcode objective-c

如何使用CGRectIntegral函数?我理解它的目的.

文件是不是它的确切用途明确.

Hec*_*tor 84

CGRectIntegral将任何十进制值转换为它们的整数等值,
请参阅图像,您可以理解在此输入图像描述

我如何解决它?

frame = CGRectIntegral(frame);
Run Code Online (Sandbox Code Playgroud)

-要么-

myTextView.frame = CGRectIntegral(myTextView.frame);
Run Code Online (Sandbox Code Playgroud)

有关CGRectIntegral的更多信息,   请参阅此处

  • 如果要在iOS模拟器中以紫色突出显示模糊图像,请选择"调试">"颜色未对齐图像".这样,你就不必在整个地方眯着眼睛看出哪些东西是模糊的. (3认同)
  • 重要的是要添加:CGRectIntegral 用于填充/绘制像素缓冲区。描边形状以其坐标为中心,因此您实际上可能需要非整数(例如 1x 屏幕上的 0.5)坐标才能使它们显得清晰。请参阅此处了解更详细的解释:http://orangejuiceliberationfront.com/are-your-rectangles-blurry-pale-and-have-rounded-corners/ (2认同)

Vig*_*esh 13

CGRectIntegral方法用于创建整数rect.我的意思是假设你在app中计算帧数,你可能会得到浮点数的帧值.

将浮点值设置为某些UIElement的框架UILabel会使文本看起来模糊.为避免这种情况,我们使用 CGRectIntegral.请看下面的例子,

NSLog(@"%@",NSStringFromCGRect(   CGRectIntegral(CGRectMake(0, 15.6, 16.1, 20.2))));
Run Code Online (Sandbox Code Playgroud)

这将打印{0,15},{17,21}.

此解释可在头文件中找到.

/* Expand `rect' to the smallest rect containing it with integral origin and
   size. */
Run Code Online (Sandbox Code Playgroud)


Mik*_*ler 7

一个特殊用途是修复与屏幕上像素不完全对齐的帧.

看到这个问题:UITextField模糊文本

如果标签或文本字段在渲染到屏幕时具有不按像素对齐的帧,则文本将显得模糊.如果使用除法计算帧(例如将其置于父视图中),则会发生这种情况.

CGRectIntegral将删除框架的小数部分,解决此问题.但请注意,对于视网膜显示,.5帧值是像素对齐的,但CGRectIntgral仍将删除小数部分.