RGB 값에서 UIColor를 올바르게 초기화하는 방법은 무엇입니까?
다양한 색상을 사용하는 iPhone 응용 프로그램에서 작업 중입니다. 사용자가 특정 색상 버튼을 선택하면 그에 따라 그리기 색상을 설정합니다. 나는 일부 색상을 얻었지만 대부분의 경우 흰색을 얻습니다.
내 코드는 다음과 같습니다.
-(IBAction)colorSelected:(UIButton *)sender
{
switch (sender.tag)
{
case 1:
self.drawcolor= [UIColor colorWithRed:200 green:191 blue:231 alpha:1];
break;
case 2:
self.drawcolor= [UIColor colorWithRed:163 green:73 blue:164 alpha:1];
break;
case 3:
self.drawcolor= [UIColor colorWithRed:112 green:146 blue:76 alpha:1];
break;
case 4:
self.drawcolor= [UIColor colorWithRed:63 green:72 blue:204 alpha:1];
break;
case 5:
self.drawcolor= [UIColor colorWithRed:153 green:217 blue:234 alpha:1];
break;
case 6:
self.drawcolor= [UIColor colorWithRed:0 green:162 blue:232 alpha:1];
break;
case 7:
self.drawcolor= [UIColor colorWithRed:181 green:230 blue:29 alpha:1];
break;
case 8:
self.drawcolor= [UIColor colorWithRed:34 green:177 blue:76 alpha:1];
break;
case 9:
self.drawcolor= [UIColor colorWithRed:239 green:228 blue:176 alpha:1];
break;
case 10:
self.drawcolor= [UIColor colorWithRed:255 green:201 blue:0 alpha:1];
break;
case 11:
self.drawcolor= [UIColor colorWithRed:255 green:201 blue:14 alpha:1];
break;
case 12:
self.drawcolor= [UIColor colorWithRed:237 green:28 blue:36 alpha:1];
break;
case 13:
self.drawcolor= [UIColor colorWithRed:255 green:127 blue:39 alpha:1];
break;
case 14:
self.drawcolor= [UIColor colorWithRed:255 green:174 blue:201 alpha:1];
break;
case 15:
self.drawcolor= [UIColor colorWithRed:185 green:122 blue:87 alpha:1];
break;
case 16:
self.drawcolor= [UIColor colorWithRed:136 green:0 blue:21 alpha:1];
break;
case 17:
self.drawcolor= [UIColor colorWithRed:195 green:195 blue:195 alpha:1];
break;
case 18:
self.drawcolor= [UIColor colorWithRed:127 green:127 blue:127 alpha:1];
break;
case 19:
self.drawcolor= [UIColor colorWithRed:255 green:255 blue:255 alpha:1];
break;
case 20:
self.drawcolor= [UIColor colorWithRed:0 green:0 blue:0 alpha:1];
break;
default:
break;
}
self.preColor=self.drawcolor;
self.lineWidth=self.prelineWidth;
}
아무도 내가 뭘 잘못하고 있는지 말해 줄 수 있습니까? Sumit
값은에 0.0
위해 1.0
범위.
예를 들어으로 나누지 255.
만 소수점을 기억하여 정수 나눗셈이 아닌 부동 소수점 나누기를 얻습니다.
처럼
selectedColor = [UIColor colorWithRed:14.0/255.0 green:114.0/255.0 blue:199.0/255.0 alpha:1];
Swift를 사용한 실용적인 접근 방식 .
extension UIColor {
convenience init(rgbColorCodeRed red: Int, green: Int, blue: Int, alpha: CGFloat) {
let redPart: CGFloat = CGFloat(red) / 255
let greenPart: CGFloat = CGFloat(green) / 255
let bluePart: CGFloat = CGFloat(blue) / 255
self.init(red: redPart, green: greenPart, blue: bluePart, alpha: alpha)
}
}
몇 가지 옵션이 있습니다
암호
CGFloat red = 16.0;
CGFloat green = 97.0;
CGFloat blue = 5.0;
CGFloat alpha = 255.0;
UIColor *color = [UIColor colorWithRed:(red/255.0) green:(green/255.0) blue:(blue/255.0) alpha:(alpha/255.0)];
Interface Builder 용 색상 선택기 플러그인
IB와 잘 작동하는 Panic의 멋진 색상 선택기가 있습니다. http://panic.com/~wade/picker/
Xcode 플러그인
This one gives you a GUI for choosing colors: http://www.youtube.com/watch?v=eblRfDQM0Go
Pods and libraries
There's a nice pod named MPColorTools
: https://github.com/marzapower/MPColorTools
Here is a method that you can easily turn into a category on UIColor that will allow you to specify a color based on RGBA values of 0 - 255.
+ (UIColor *)colorFromRGBAWithRed:(CGFloat)red green:(CGFloat)green blue:(CGFloat)blue alpha:(CGFloat)alpha {
return [UIColor colorWithRed:red/255.0 green:green/255.0 blue:blue/255.0 alpha:alpha/255.0];
}
If you make it a UIColor category extension, you can use it like so:
UIColor *myAwesomeColor = [UIColor colorFromRGBAWithRed:48 green:119 blue:167 alpha:255];
In Swift you can easily set your Background-Color for example of a cell like this:
cell.backgroundColor = UIColor.init(red: 14.0/255.0, green: 114.0/255.0, blue: 199.0/255.0, alpha: 1)
:-)
(ContentView.Layer.BorderColor) //CG Object
= UIColor.LightGray.CGColor;
참고URL : https://stackoverflow.com/questions/8023916/how-to-initialize-uicolor-from-rgb-values-properly
'UFO ET IT' 카테고리의 다른 글
Python 가져 오기 코딩 스타일 (0) | 2020.11.25 |
---|---|
루프가있는 증가 카운터 (0) | 2020.11.25 |
printf를 사용하여 문자를 반복하는 방법은 무엇입니까? (0) | 2020.11.25 |
우분투 14.04에 최신 nodejs 버전 설치 (0) | 2020.11.25 |
Android-세로 레이아웃 만 (0) | 2020.11.25 |