Tengo un UITableViewdonde los separadores no tienen todo el ancho. Termina como 10 píxeles antes del lado izquierdo. Estaba jugando con este código en el viewDidLoad().
self.tableView.layoutMargins = UIEdgeInsetsZero;
También en el guión gráfico cuando puede seleccionar selectores personalizados o predeterminados. Ahora todas las celdas que están pobladas no tienen los selectores de ancho completo, pero las celdas que están vacías tienen ancho completo.
¿Cómo puedo arreglar esto?
ios
objective-c
iphone
uitableview
Timo Cengiz
fuente
fuente

UITableViewTiene una propiedadseparatorInset. Establezca la inserción delUITableViewseparador de línea en cero. También puede cambiar elseparatorInsetdesde el guión gráficoRespuestas:
Esto funcionó para mí en dispositivos iOS 8.4 - 9.0 que usan Xcode 6.4 y Swift 1.2:
Actualización de Swift 5:
fuente
Recibí la respuesta de esta publicación: el separador 0 del separador UITableView de iOS 8 no funciona
Simplemente agregue este código en su
UITableViewControllerfuente
viewDidLayoutSubviewsno es necesarioEn tus
UITableViewCellVaya al Inspector de atributos en el Creador de interfaces y simplemente cambie "15" a 0. Haga esto para todas las celdas que desea cambiar.
Es posible que deba agregar
[cell setLayoutMargins:UIEdgeInsetsZero];a sutableViewCellfuente
para Swift 3:
fuente
UITableViewCelllefty / orightcampos. (Por defectoleft: 15,right: 0)Mira cómo funciona (usando
left: 100):Resultado:
fuente
Heredo de
UITableViewControllery necesitaba adicional a la configuración de dos inserciones enwillDisplayCelltambién para establecerpreservesSuperviewLayoutMarginsen falso. En Swift se ve así:fuente
preservesSuperviewLayoutMargins = falseporque el valor predeterminado ya es falsoEl separador
Insetes por defecto 15 desde la izquierda. Cambie laInsetopción Separador deautoacustomy establezca el recuadro en0.fuente
Para Swift en iOS 9+
Si usa una costumbre
UITableViewCell:entonces para tu
UITableViewenviewDidLoad:fuente
Para las personas que tienen problemas con el iPad, esto lo llevará a un estado similar al del iPhone. A continuación, puede ajustarlo
separatorInsetsegún sea necesario.fuente
Úselo en el
cellForRowAtIndexPathmétodo, para configurar las especificaciones del separador de la celda,funciona perfecto para iOS9.0 +
fuente
Probado para iOS 9.3 y Swift 2.2. Asegúrese de poner el código en el
willDisplayCellque se llama justo antes de mostrar la celda y no encellForRowAtIndexPathdonde crea la celda solamente.Agregue
overridea la función paraUITableViewController, así:fuente
Nada de lo anterior funcionó para mí en Swift 2.2 y Xcode 7.3.1
Resultó ser la solución más simple de todas. No se necesita código. Simplemente cambie los
TableViewCellvalores de Márgenes de diseño en suUITableViewinspector:fuente
Para Swift 3:
fuente
En
viewDidLoad(probado iOS11 - swift 4.1)tratar
tableView.separatorInset = UIEdgeInsetsMake(0, 0, 0, 0)fuente
Ninguna de estas soluciones funciona en el iPad, pero se me ocurrió una solución que cubre ambos dispositivos:
Con celdas reutilizables:
Con celdas no reutilizables:
Solo para ampliar este enfoque:
Ambas propiedades pueden ser utilizadas por
UITableView&UITableViewCell. Este último es, de hecho, una propiedad deUIView, que es una clase padre de ambosUITableView&UITableViewCell.fuente
Swift 5, actualización Xcode 11
coloque esto dentro de viewDidLoad ()
para el separador de borde a borde solo establezca el valor de izquierda y derecha en 0.
por cierto, cambie "yourTableView" a su nombre de Outlet tableView.
fuente