Целью настоящего изобретения является размер UISegmentedControl, размер которого составляет backgroundView
, а не contentView
. Я был в состоянии сделать это программно, выполнив следующие действия:
// Size to cover the entire background
self.contentView.frame = self.backgroundView.frame;
self.myControl.frame = self.contentView.bounds;
Обратите внимание, что если вы используете аксессуар, вам необходимо учитывать для accessoryView
а.
Причина заключается в том, что иерархия зрения выглядит следующим образом:
self
(UITableViewCell или подкласс)
backgroundView
contentView
- (ваши средства управления идут сюда)
accessoryView
В портретной, то backgroundView
'кадр с является {{9, 0}, {302, 44}}
, в то время как contentView
' кадр с немного меньше, в {{10, 1}, {300, 42}}
. Это дает ячейке свою 1px «границу», когда стиль таблицы сгруппирован. Вы должны изменить размер contentView
и, чтобы получить соответствующий размер.
(ПРИМЕЧАНИЕ. В то время как Apple, на самом деле имеет несколько примеров в UISegmentedControl в проекте UICatalog образца кода в the SDK, они эффективны «обмануть», используя UIViewController и настройку основного вида по цвету фона в таблице цвета фона)
Незначительное предложение стиль: используя правильную капитализацию имена классов в заголовке вопроса сделают его намного более легким для чтения. Вы можете изменить его после факта. Извините, у меня нет ответа, на данный момент я занимаюсь только настольными приложениями. –