我在我的应用程序中呈现了一个UIPopoverController,但内容视图显得有些模糊。
为了演示,我将内容视图控制器的第二个实例直接放在self.view上,通过比较很容易看出popover中的文本是模糊的。设备和模拟器中都会出现此问题。
截图:
代码:
// ...
// init the edit view controller
editSOViewController = [[EditViewController alloc]
initForNewObjectWithDict:dict];
// init popover with editSOViewController
UIPopoverController *popover = [[UIPopoverController alloc]
initWithContentViewController:editSOViewController];
// set size
navPopover.popoverContentSize =
CGSizeMake(editSOViewController.view.frame.size.width,
[editSOViewController heightForViewControllerInPopoverView]);
// this is blurry
[popover presentPopoverFromRect:image.frame
inView:self.view
permittedArrowDirections:UIPopoverArrowDirectionAny
animated:YES];
// this is clear
editViewController *test =
[[EditViewController alloc] initForNewObjectWithDict:dict];
[self.view addSubview:test.view];
任何可能导致此问题的想法?我认为UIPopover可能会略微缩小视图,但我用图像编辑器排列了两个示例,并且大小没有差异(但在弹出视图中有明显的“模糊”)。
如果我使用WEPopover(https://github.com/werner77/WEPopover/),我仍然会遇到同样的问题。
感谢。
答案 0 :(得分:9)
使用带小数部分的帧值会导致像素之间的定位,从而导致模糊。
要避免这种情况,请使用round
或floor
等功能将帧值设置为无分数的数字。