El truco parece ser el tamaño del UISegmentedControl al tamaño del backgroundView
del control, no el contentView
. Yo era capaz de hacerlo mediante programación mediante el procedimiento siguiente:
// Size to cover the entire background
self.contentView.frame = self.backgroundView.frame;
self.myControl.frame = self.contentView.bounds;
Tenga en cuenta que si está utilizando un accesorio, es necesario tener en cuenta el accessoryView
también.
La razón es que la jerarquía de la vista es el siguiente:
self
(el UITableViewCell o subclase)
backgroundView
contentView
- (sus controles en este espacio)
accessoryView
En la disposición vertical, el backgroundView
'marco s es {{9, 0}, {302, 44}}
, mientras que el contentView
' marco s es ligeramente más pequeño, en {{10, 1}, {300, 42}}
. Esto le da a la celda su "borde" 1px cuando el estilo de la tabla está agrupado. Debe cambiar el tamaño del control contentView
y para obtener el tamaño adecuado.
(NOTA:. Mientras que Apple realmente tiene varios ejemplos de un UISegmentedControl en el proyecto de código UICatalog muestra en the SDK, que efectivamente "trampa" mediante el uso de un UIViewController y el establecimiento de la vista principal color de fondo al color de fondo de la tabla)
Una sugerencia estilo de menor importancia: el uso de la capitalización adecuada de la los nombres de clase en el título de la pregunta lo harían mucho más fácil de leer. Puedes cambiarlo después del hecho. Lo siento, no tengo una respuesta, solo hago aplicaciones de escritorio en este momento. –