2

我有UIView它不像整个屏幕那么大,我希望它出现在屏幕中间。我使用以下代码做到了这一点:

    self.dialogView.center = CGPointMake(self.view.bounds.size.width / 2.0, self.view.bounds.size.height / 2.0);

不幸的是,当我这样居中时,UIView的内容显得模糊。 在此处输入图像描述

我已经用这个修复了它:

    self.dialogView.center = CGPointMake(self.view.bounds.size.width / 2.0 + 0.5, self.view.bounds.size.height / 2.0);

现在 UIView 的内容应该会出现:)

在此处输入图像描述

你能告诉我为什么那个内容变得模糊,为什么我需要在左边的位置偏移上加上 0.5 吗?

4

2 回答 2

8

新中心导致控件视图的原点落在半像素上,例如 { 20.5, 20.5 }。由于屏幕不能只绘制半个像素,因此渲染引擎试图通过尽可能扩散图像来获得相同的效果,从而导致图像模糊。

您需要确保所有视图的来源都是整数。

于 2012-07-06T17:22:15.533 回答
1

好吧,我认为那是由于如何将UIView其放置在屏幕的像素网格上。如果您在常规屏幕(72 像素/英寸)上考虑它,0.5 点意味着 0.5 像素,这可能会导致您看到的内容......至少这是我的理论:P

于 2012-07-06T17:22:01.003 回答