Я использую этот код, чтобы дать моим UIButtons границу (в iOs 7). Он работает достаточно хорошо, но только для одного состояния кнопки.Programmaticaly устанавливает цвет границы кнопок в iOs7
- (void)setRoundedBorder:(float) radius borderWidth:(float)borderWidth color:(UIColor*)color
{
CALayer * l = [self layer];
[l setMasksToBounds:YES];
[l setCornerRadius:radius];
// You can even add a border
[l setBorderWidth:borderWidth];
[l setBorderColor:[color CGColor]];
}
Как его настроить, чтобы я мог установить цвет кнопки в выбранном/выделенном состоянии. PS: Отредактировано для добавления: Этот код (вверху) находится внутри категории на UIButton.
Я попытался это:
CALayer * l = [self layer];
[l setMasksToBounds:YES];
[l setCornerRadius:radius];
// You can even add a border
[l setBorderWidth:borderWidth];
if (self.state == UIControlStateHighlighted) {
[l setBorderColor:[anotherColor] CGColor]
} else {
[l setBorderColor:[color CGColor]];
}
Это не работает, так как это находится внутри категории и apperently это не может обнаружить изменение состояния ...
Вы можете наблюдать за состоянием кнопки и изменять цвет рамки, когда она изменяется на выбранную и выделенную. – dasdom
Какой класс является вашим '-setRoundedBorder: borderWidth: color:' объявленным? Вы подклассифицируете 'UIButton'? Потому что тот же код, примененный к слою 'UIButton', работает во всех состояниях для меня. –
Это внутри категории на UIButton. – user1028028