Использование [UIColor colorWithRed: green: blue: alpha:] не работает с UITableView seperatorColor?
Я пытаюсь настроить цвет серого серого цвета. Почему следующее ничего не делает?
self.tableView.seperatorStyle = UITableViewCellSeperatorStyleSingleLine;
self.tableView.seperatorColor = [UIColor colorWithRed: 127 green:127 blue:127 alpha:1];
возвращает таблицу без каких-либо разделителей.
Как только я использую [UIColor blackColor], я сразу получаю отрывников. Какая сделка?
Ответы
Ответ 1
Вам нужно разделить на 255.0
Поскольку я почти никогда не использовал значения между 1.0 и 0.0, я создал очень простую категорию UIColor, которая сама выполняет беспорядочное деление: (из http://github.com/Jon889/JPGeneral)
//.h file
@interface UIColor (JPExtras)
+ (UIColor *)colorWithR:(CGFloat)red G:(CGFloat)green B:(CGFloat)blue A:(CGFloat)alpha;
@end
//.m file
@implementation UIColor (JPExtras)
+ (UIColor *)colorWithR:(CGFloat)red G:(CGFloat)green B:(CGFloat)blue A:(CGFloat)alpha {
return [UIColor colorWithRed:(red/255.0) green:(green/255.0) blue:(blue/255.0) alpha:alpha];
}
@end
Итак, вы можете просто сделать (если вы импортируете указанную выше категорию I):
[UIColor colorWithR:127 G:127: B:127 A:1];
Ответ 2
Поскольку ваш метод UIColor требует поплавок с 0-1, а не 0-255. Вам необходимо разделить все ваши значения RGB на 255.0, как показано ниже:
self.tableView.seperatorColor = [UIColor colorWithRed:127.0f/255.0f green:127.0f/255.0f blue:127.0f/255.0f alpha:1.0f];
Ответ 3
Вы должны разделить свои значения на 255, потому что диапазон 0-1. Возьмите 127/255 = 0.49f и введите вместо этого. Он там, он просто белый:)
edit: причина комментариев, я добавил код о том, как я его решаю:
-(float)getRGBValue:(int) rgbValue{
return rgbValue/255.0;
]
Ответ 4
В UIColor
есть два новых метода, которые принимают целочисленные значения от 0 до 255:
UIColor(red: Int, green: Int, blue: Int)
и
UIColor(alpha: Float, red: Int, green: Int, blue: Int)
Это не в документации, но я использовал это, и это работает как шарм.