2016-05-28 2 views
0

У меня возникли проблемы с получением границы или тени между тремя кнопками, чтобы показать некоторое разделение. Я попытался получить границу или тень только на левой и правой стороне средней кнопки, но я мог только получить тень на одной стороне. Любая помощь приветствуется.UIButton border справа и слева

То, что я пытался пользователя, чтобы получить тень, но показывает только на правой стороне:

middleButton.layer.backgroundColor = UIColor.whiteColor().CGColor 
    middleButton.layer.borderColor = UIColor(red: 208/255, green: 208/255, blue: 208/255, alpha: 1.0).CGColor 
    middleButton.layer.borderWidth = 0.0 
    middleButton.layer.masksToBounds = false 
    middleButton.layer.shadowColor = UIColor(red: 208/255, green: 208/255, blue: 208/255, alpha: 1.0).CGColor 
    middleButton.layer.shadowOffset = CGSizeMake(0.5, 1.0) 
    middleButton.layer.shadowOpacity = 1.0 
    middleButton.layer.shadowRadius = 1.0 

Ниже мой текущий вид с тремя кнопками, которые я пытаюсь добавить разделитель между:

enter image description here

иерархия у меня есть для этого в ячейке таблицы:

enter image description here

+0

Установить цвет фона баттона может быть полезным –

+0

и может добавить вид в кнопке. который смотрит, что вы хотите. –

+0

Посмотрите ответы здесь: http://stackoverflow.com/questions/7666863/uiview-bottom-border – beyowulf

ответ

0

Где существует ограничения на реальных возможностях коды, решение заключается с графическими значками, есть для «Избранном», «Доля», карты».

Граница/линия разделителя между кнопками может быть выполнена в графическом значении для кнопок, которые у вас есть. Adobe иллюстратор или фотомагазин. Я воссоздал образец в иллюстраторе, перевел его на «Assets.xcassets» в качестве изображения, и добавил его в качестве фонового изображения к кнопке.

Кнопка, например.

enter image description here

Snapshop тренажера следующим образом ...

enter image description here

1

Swift 3 ответа

Вы можете сделать расширение для UIButton

extension UIButton { 

func addRightBorder(borderColor: UIColor, borderWidth: CGFloat) { 
    let border = CALayer() 
    border.backgroundColor = borderColor.cgColor 
    border.frame = CGRect(x: self.frame.size.width - borderWidth,y: 0, width:borderWidth, height:self.frame.size.height) 
    self.layer.addSublayer(border) 
} 

func addLeftBorder(color: UIColor, width: CGFloat) { 
    let border = CALayer() 
    border.backgroundColor = color.cgColor 
    border.frame = CGRect(x:0, y:0, width:width, height:self.frame.size.height) 
    self.layer.addSublayer(border) 
} 
} 

Затем вы можете использовать это для любой из ваших кнопок.

middleButton.addRightBorder(borderColor: UIColor.white, borderWidth: 1.0) 

middleButton.addLeftBorder(borderColor: UIColor.white, borderWidth: 1.0) 

Должно работать нормально. Счастливое кодирование!

0

Другим подходом является добавление кнопок в UIStackView. С его помощью вы можете легко управлять тем, как вы хотите, чтобы подпрограммы были организованы и распределены.

Добавить UIView как разделители с ограничением ширины 1 точки. После установки ограничений на UIStackView, установите свойство распределения равным «Равное расстояние», и представления будут выровнены в соответствии с ним.

example

Смежные вопросы