5

アプリケーションでUIPopoverControllerを表示していますが、コンテンツビューが少しぼやけて表示されています。

実例を示すために、コンテンツビューコントローラーの2番目のインスタンスをself.viewに直接配置しました。これを比較すると、ポップオーバーのテキストがあいまいであることが簡単にわかります。この問題は、デバイスとシミュレータの両方で発生します。

スクリーンショット:

ここに画像の説明を入力してください

コード:

// ...    

// 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はビューを少し縮小しているのではないかと思いましたが、2つの例を画像エディターで並べたところ、サイズに違いはありません(ただし、ポップオーバービューでは明確な「ファズ」があります)。

WEPopover(https://github.com/werner77/WEPopover/)を使用しても同じ問題が発生します。

ありがとう。

4

1 に答える 1

9

小数部分でフレーム値を使用すると、ピクセル間に配置され、ぼやけが生じます。

roundこれを回避するには、またはなどの関数を使用して、フレーム値を小数部のない数値に設定しますfloor

于 2011-05-16T21:47:37.793 に答える