instalar - Problema de UICollectionView para iOS 9 en un proyecto con soporte de idiomas RTL
ipad 9.3 5 año (2)
Estaba en una situación similar y encontré una solución para esto. Si está utilizando swift, agregue el siguiente fragmento de código a su proyecto, y se asegurará de que los límites.origen siempre siga el borde anterior de la vista de colección.
extension UICollectionViewFlowLayout {
open override var flipsHorizontallyInOppositeLayoutDirection: Bool {
return true
}
}
Si está utilizando Objective-C, simplemente haga una subclase de la clase UICollectionViewLayout e invalide flipsHorizontallyInOppositeLayoutDirection y devuelva true. Utilice esta subclase como el objeto de diseño de su vista de colección.
Parece que la nueva característica de Apple de la interfaz de cambio automático en idiomas RTL causa problemas al utilizar UICollectionView
.
Utilicé restricciones de tipo Trailing / Leading para la vista de colección y cambiaron sus valores, como deberían, en el lenguaje RTL.
El problema es que los datos realmente presentados son de la última indexPath
en el origen de datos de la colección, pero el UIScrollView.contentOffset.x
de la primera celda es 0.
Un comportamiento adecuado habría sido uno de los siguientes:
- Visualización correcta de la primera
indexPath
y cambio de dirección del desplazamiento (hacia la derecha) - Mejor opción - No cambiar la IU / Restricciones, por lo que se presentarán los datos presentados /
indexPath
/scrollView.contentOffset.x
- Opción que deshabilita el soporte de RTL. - Presentar la celda y los datos de la última indexPath, pero arreglar el
scrollView.contentOffset.x
para representar la última posición de la celda también.
Supongo que Apple podría solucionarlo en algún momento en el futuro, pero mientras tanto tendremos que usar soluciones alternativas como invertir la matriz y / o desplazarse hasta el último objeto.
Hay una solución común para ese problema que me funciona, siga los pasos a continuación para superar ese problema,
- Defina la restricción de diseño automático según sus requisitos y luego, desde el inspector de atributos, cambie la propiedad de control semántico de la vista de colección a Forzar de derecha a izquierda desde el guión gráfico.
- Luego, abra el guión gráfico como código fuente y busque los atributos "iniciales" de su vista de colección relevante y sustitúyalos por "izquierda" y lo mismo que por "atrás" sustitúyalos por "derecha". Ahora que casi has terminado.
- ahora que le dará resultado según su requisito.