2013-11-30 2 views
2

Изображение говорит все (см. Стрелки). В любом случае я могу убедиться, что фон прозрачен? Если я установил фон прозрачным в UISegmentedControl, он также установит цвет кнопки, но мы хотим этого избежать.iOS 7 SegmentControl Цвет фона

enter image description here

Разъяснение: Мы хотим, чтобы кнопки белыми, но избавиться от белого материала в углах. Установка фона на белый делает это, но затем делает прозрачным фон бутона, которого мы не хотим.

enter image description here

Обновления: Теперь выглядит следующим образом, после попытки предложения ASTRI и установки углового радиуса до 5. Тем не менее, есть пустое пространство справа.

ответ

4

После уточнения:

Попробуйте это:

yourSegmententControl.layer.cornerRadius = 5; 

Убедитесь, что вы импортировать Quartz

+0

это помещает пробел (изображение) между кнопками, но, похоже, не решает проблему. Я хочу изменить края, а не делители. –

+0

Спасибо за ваш пример. проблема в нашем случае состоит в том, что у нас нет квадратных углов (то есть одинаковых на всех кнопках, как в вашем случае), и таким образом теряют эффект округленного угла (как в оригинальной конструкции яблока). –

+0

Почти! Все еще пустое пространство справа. См. Обновление, о котором идет речь выше. –

0

Цвет фона в представлении элементов управления уже прозрачен, поэтому вам нужно установить их так же, как любой цвет, а не только цвет фона в представлении сегментированного элемента управления. Имейте в виду, что у контролей есть разные конфигурации для их состояния.

+0

Если я установил его на прозрачный, кнопки станут прозрачными, я хочу сохранить эти белые. –

+0

Итак, вам нужно сменить кнопки на белый. Извините, это будет образ, а не цвет. Но изображение 1 пикселя в цвете, который вы хотите, будет делать. https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/UIKitUICatalog/UISegmentedControl.html#//apple_ref/doc/uid/TP40012857-UISegmentedControl –

+0

Попробуйте это, но, похоже, это не действует: UIImage * whiteImage = [UIImage imageNamed: @ "white.png"]; [оценка setBackgroundImage: whiteImage forState: UIControlStateNormal barMetrics: UIBarMetricsDefault]; Любые мысли? –

1

Я испытал то же белое пространство на правой проблемой, когда я явно задать ширину UISegmentedControl ,

Чтобы исправить это, не устанавливайте ширину сегментированного элемента управления - просто установите ширину каждого сегмента.

// Determine your segment width 
CGFloat segmentWidth = 50.0; 

// Loop through the segments 
for (NSInteger i=0; i<mySegmentedControl.numberOfSegments; i++) { 

    // Set the width of each segment 
    [mySegmentedControl setWidth:segmentWidth forSegmentAtIndex:i]; 
} 
Смежные вопросы