2011-05-16 18 views
5

Estoy presentando un UIPopoverController en mi aplicación pero la vista de contenido aparece un poco borrosa.Los contenidos de UIPopoverController son borrosos

Para demostrar, puse una segunda instancia del controlador de vista de contenido directamente en self.view y es fácil ver en comparación que el texto en el popover es borroso. Este problema ocurre tanto en el dispositivo como en el simulador.

Captura de pantalla:

enter image description here

Código:

// ...  

// 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]; 

¿Alguna idea de lo que podría ser la causa? Pensé que el UIPopover podría estar encogiendo ligeramente la vista, pero alineé los dos ejemplos con un editor de imágenes y no hay diferencia en el tamaño (pero distinto "fuzz" en la vista de popover).

Todavía tengo el mismo problema si uso WEPopover (https://github.com/werner77/WEPopover/).

Gracias.

+0

¿Está utilizando algún método -setCenter para cualquier vista? – Alkimake

+0

NSActualiza el valor de image.frame. ¿Tiene alguna parte fraccionaria? – Anna

+0

@Anna Karenina 'CGRect f = floatingImageView.frame; NSLog (@ "x:% f, y:% f, w:% f, h% f", f.origin.x, f.origin.y, f.size.width, f.size.height) ; ' ' x: 336.707764, y: 450.813629, w: 60.000000, h39.000000' – rdavisau

Respuesta

9

El uso de valores de fotogramas con partes fraccionarias provoca el posicionamiento entre los píxeles, lo que produce imágenes borrosas.

Para evitarlo, establezca los valores de cuadro en números sin fracciones utilizando funciones como round o floor.

+0

Perfecto, gracias! – rdavisau

Cuestiones relacionadas