Pregunta

Estoy usando Xcode 6.0 beta 4, encuentro que los botones en el UICollectionViewCell no hay respuesta al toque.

Detalles como:

UICollectionViewController

--- UICollectionViewCell

------ UIButton (UIButton tiene dos autolayout restricciones para poner el UIButton en el centro vertical y en el centro horizontal en el Cell )

Ahora haz el cell el tamaño es algo así como:(300, 1000)

Ejecute la aplicación en iPhone Simulator o dispositivo con iOS 7.0 o 7.1.x, el botón no se puede tocar, pero pruébelo en el simulador de iOS 8.0, está bien.También si cambio de celular size a (300, 200), el botón funciona.

Creo que es un error en esta versión beta de Xcode, ¿verdad?

¿Y dónde puedo disparar el error a Apple?

¿Fue útil?

Solución

Se han olvidado de configurar una máscara de tamaño automático para contentView de UICollectionViewCell

esto solucionalo

self.contentView.autoresizingMask = UIViewAutoresizingFlexibleHeight |    UIViewAutoresizingFlexibleWidth;

Otros consejos

Parece que esto no es realmente un error, sino un problema de incompatibilidad al apuntar a dispositivos iOS 7 que usan Xcode 6. publicación de ecotax describe esto con más detalle, pero aquí está la respuesta de Apple DTS:

En iOS 7, las vistas de contenido de las celdas se dimensionaban mediante máscaras de tamaño automático.En iOS 8, esto cambió, las celdas dejaron de usar las máscaras de tamaño automático y comenzaron a ajustar el tamaño de la vista de contenido en layoutSubviews.Si una punta está codificada en iOS 8 y luego la decodifica en iOS 7, tendrá una vista de contenido sin una máscara de tamaño automático y ningún otro medio para ajustar su tamaño.Entonces, si alguna vez cambia el marco de la celda, la vista de contenido no seguirá.

Las aplicaciones que se están implementando nuevamente en iOS 7 tendrán que solucionar este problema ajustando el tamaño de la vista de contenido, agregando máscaras de tamaño automático o agregando restricciones.

Sin embargo, la solución anterior de Alexey funcionará:

- (void)awakeFromNib
{
   // Fix for iOS 7 devices targeted using Xcode 6.
   self.contentView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top