[UIColor colorWithRed : green : blue : alpha :]를 사용하면 UITableView seperatorColor에서 작동하지 않습니까?


86

짙은 회색 구분자 색상을 구성하려고합니다. 다음은 왜 아무것도하지 않습니까?

self.tableView.seperatorStyle = UITableViewCellSeperatorStyleSingleLine;
self.tableView.seperatorColor = [UIColor colorWithRed: 127 green:127 blue:127 alpha:1];

구분자가 전혀없는 테이블을 반환합니다.

[UIColor blackColor] 를 사용하자마자 구분자가 제대로 표시 됩니다. 거래는 무엇입니까?

답변:


211

당신은 나눌 필요가 있습니다 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

그래서 당신은 할 수 있습니다 (위에 링크 된 카테고리를 가져 오는 경우) :

[UIColor colorWithR:127 G:127: B:127 A:1];

5
업계에서 0-1 표준 값입니까? 사진 편집 응용 프로그램을 열 수 있으며 색상 선택기는 추가 작업 분할을 수행하게하는 이유가 궁금하더라도 0-255의 값을 제공합니까?
머핀 맨

1
@Nick-좋은 질문입니다. UIColor'깊은 색상'(즉, 깊이가 24 비트보다 큰 색상 또는 알파가있는 32)을 지원해야하기 때문이라고 생각합니다 . 물론, 그것이 여전히 내장 된 편의 방법 (16 진수 지원과 함께)이 많은 개발자들에게 상당히 도움이 될 것이라는 사실을 바꾸지는 않습니다!
lxt

또한 16 진수 값에도 동일하게 적용됩니다. 때로는 색상을 16 진수로 가져 오므로 직접 계산하지 않으려면 다음을 사용할 수 있습니다. 예를 들어 # C94557의 경우 [UIColor colorWithRed : (CGFloat) 0xC9 / 0xFF green : (CGFloat) 0x45 / 0xFF blue : (CGFloat) 0x57 / 0xFF 알파 : 1.0];
memical

0에서 255 사이의 정수 값을 허용하는 두 가지 새로운 방법이 UIColor에 있습니다. 아래 내 대답을 참조하십시오.
Blip

59

UIColor 메서드에는 0-255가 아닌 0-1의 부동 소수점이 필요하기 때문입니다. 다음과 같이 모든 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

범위가 0-1이므로 값을 255로 나누어야합니다. 127/255 = 0.49f를 대신 입력하십시오. 거기에, 그냥 흰색입니다 :)

편집 : 주석의 원인, 해결 방법에 대한 코드를 추가했습니다.

-(float)getRGBValue:(int) rgbValue{  
    return rgbValue/255.0;
]

1

UIColor0에서 255 사이의 정수 값을 허용하는 두 가지 새로운 메서드가 있습니다 .

UIColor(red: Int, green: Int, blue: Int)

UIColor(alpha: Float, red: Int, green: Int, blue: Int)

문서에는 없지만 사용해 보았고 매력처럼 작동합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.