Recorte de contenido de UIView no funciona / cambio de tamaño de UIView no funciona

Me encontré con un problema en el que el recorte de subvistas no funciona de manera coherente (o potencialmente, el cambio de tamaño de UIView no funciona). Este es el escenario:

  • Tengo una UIView (sección arriba de la línea). El tamaño real es mayor para acomodar la barra de búsqueda. Básicamente, networkingimensiono en viewDidLoad.
  • Al hacer clic en el campo de text, UIView se expande y muestra una barra de búsqueda
  • Después de la búsqueda, queuepsé la UIView, pero encontré que la UIView no está queuepsada en cierto caso (ver la primera image). Si no ocultara la barra de búsqueda, también quedará.

¿Hay algún motivo por el que se produce este problema? Todavía estoy tratando de depurar y ver si hay algo que podría haber causado este problema (ya que algo puede restablecer el tamaño original). Definitivamente parece que todo cambia de tamaño correctamente, ya que incluso la tabla de resultados se mueve correctamente también. Algo más debe haberlo desencadenado después del cambio de tamaño esperado. Cualquier puntero es apreciado. Solo he hecho el desarrollo de iOS durante 5 días, así que todavía no conozco muchas cosas.

- (void)showAddressField { CGRect headerFrame = self.searchHeaderView.frame; headerFrame.size.height = headerHeight + adjustmentSize; self.searchHeaderView.frame = headerFrame; CGRect tableFrame = resultTableView.frame; tableFrame.size.height = tableHeight - adjustmentSize; tableFrame.origin.y = headerFrame.size.height + statusBarHeight; resultTableView.frame = tableFrame; [self renderHeaderBorder:headerFrame.size.height - 1]; } - (void)hideAddressField { CGRect headerFrame = self.searchHeaderView.frame; headerFrame.size.height = headerHeight; self.searchHeaderView.frame = headerFrame; CGRect tableFrame = resultTableView.frame; tableFrame.size.height = tableHeight; tableFrame.origin.y = headerHeight + statusBarHeight; resultTableView.frame = tableFrame; [self renderHeaderBorder:headerHeight - 1]; 

}

EDITADO

SearchHeaderView es solo una UIView que es una subvista de la vista principal. No es un encabezado de tabla. Descubrí que si pongo una barra de búsqueda en el encabezado de la tabla, se comporta de manera muy impnetworkingecible, así que tengo una UIView que contiene la parte de búsqueda y tengo una UITableView justo debajo de ella.

Lo siento, ya que solo tengo una semana para get una aplicación bastante masiva desde cero, no tuve time de esperar. Ya cambié mi enfoque un poco, pero aún así otorgaré los puntos incluso después de que la recompensa haya expirado. Estoy tratando de entender todo lo que tiene que ver con el layout, ya que es prácticamente lo único que no puedo entender con el desarrollo de aplicaciones iOS.

UIView Clip Subviews IssueUIView ampliado

Si la barra de búsqueda está en el encabezado de la vista de tabla, intente reasignar la vista de encabezado a la vista de tabla:

 [tableView setTableHeaderView:self.searchHeaderView]; 

Si se trata de un encabezado de sección, asegúrese de actualizar el valor para el nombre del delegado.

 – tableView:heightForHeaderInSection: – tableView:viewForHeaderInSection: 

De lo contrario, publique más código sobre cómo se inicializa y se agrega a searchHeaderView a la tabla.

¡Espero que esto ayude!

En primer lugar, los frameworks ya son relativos a la window adjunta. No debe tener en count la altura de la barra de estado (suponiendo que se refiere al área de 20 px en la parte superior de la pantalla).

En el pasado, he descubierto que es posible que deba implementar "layoutSubviews" en su controller de vista y calcular los frameworks de las vistas allí. Depende de su máscara de cambio de tamaño / si está habilitado el layout automático.

Como han dicho los demás, más código sería útil … o al less las partes relevantes de la plumilla / xib.