Tengo un UIPopoverController que contiene un UITableView. La ventana emergente que se cambia el tamaño de su controlador de vista del -viewDidAppear función para adaptarse al contenido de la tabla. Mientras que la ventana emergente ajusta correctamente, su flecha es por lo general no se apunta a la original CGRect. Es allí una manera de forzar la ventana emergente para reposicionarse después de un cambio de tamaño, de modo que la flecha está apuntando a su destino?

EDITAR: I no se puede establecer el tamaño de la ventana emergente en -viewDidLoad desde la vista de tabla no carga sus datos hasta -viewDidAppear se llama, y como resultado, no sé lo que el tamaño de la ventana emergente debe ser hasta entonces. Además, se cambia el tamaño de la ventana emergente cuando uno de la tabla de la vista de células que se hace clic para mostrar otro punto de vista y esto también se traduce en la flecha ya no apunta a su objetivo previsto.

Puede establecer el tamaño de la ventana emergente antes de que la tabla esté cargado. Las dos cosas son totalmente distintos. Lo que estamos haciendo es establecer el tamaño de la encapsulación de frame; si el UITableView‘s contenido real tamaño es más, usted recibirá las barras de desplazamiento, al igual que lo que sucede cuando usted carga una vista de tabla en un iPhone y el contenido es más alto que los 480 píxeles.
Rana: quiero evitar las barras de desplazamiento cuando sea posible.
De nuevo, no se comprende. Universalmente, si el contenido de una UITableView es más alto que su marco, va a mostrar barras de desplazamiento. Que es completamente un tema aparte de lo que están pidiendo, que es ajustar el marco de una ventana emergente ver, que me han explicado cómo hacerlo.
Mi pregunta es en realidad una combinación de los dos temas: me estoy preguntando cómo ajustar el marco de una ventana emergente, tales que la UITableView es que contiene no mostrar las barras de desplazamiento (si es posible), sin permitir que la ventana emergente de la flecha para reposicionarse.
No hay una manera fácil de hacerlo. La implementación de la ventana emergente controlador necesita saber el tamaño para hacer la encapsulación de frame, por lo que sabe donde va a ser colocado en la pantalla, por lo que se sabe cuál es la posición de la flecha. La única manera en que puedo imaginar en torno a que podría ser la creación de una instancia de la vista de tabla controlador y tienen que mostrar su punto de vista fuera de la pantalla, a continuación, consulta el UITableView de su contenido, el tamaño y, a continuación, tire este oculto de la vista del controlador. Es chunga. Tal vez iOS 4.2 se tiene más control sobre la ventana emergente de los controladores, pero por ahora, usted está volando demasiado cerca del sol.

OriginalEl autor titaniumdecoy | 2010-09-08

2 Comentarios

  1. 6

    Creo que este puede ser el camino equivocado, ya que vamos a tener que volver a hacer la incorporada en el comportamiento que las posiciones de la flecha para comenzar con.

    Yo no cambiar el tamaño de ventana emergente contenido en viewDidAppear. Me puse el contentSizeForViewInPopover propiedad en la vista del controlador de viewDidLoad método, por ejemplo:

    - (void)viewDidLoad
    {
        [super viewDidLoad];
    
        self.contentSizeForViewInPopover = CGSizeMake(320, 155); //sized for a 3-row UITableView
    }

    (Rápida advertencia: si está desarrollando una aplicación universal, este código hará un tiempo de ejecución de la falla en los dispositivos de ejecución 3.1.x y, a continuación).

    También puede establecer el tamaño del contenido de la ventana emergente del controlador antes de que se presente, que debe cuidar de su problema. Retirar el popoverContentSize propiedad.

    Gracias, pero que no funciona en mi situación; ver a mis actualizado pregunta.
    que va a trabajar, ver mi respuesta
    shaggy rana popovercontentsize es buena idea self.popoverController.popoverContentSize = CGSizeMake(320, 300); va a hacer da trabajo. gracias man
    A mí me funciona
    Nota contentSizeForViewInPopover está en desuso como de 7.0

    OriginalEl autor Shaggy Frog

Dejar respuesta

Please enter your comment!
Please enter your name here