문제가 있습니다. 두 가지 색상을 사용하여 '가상 그라디언트'를 만들어 낼 수 있어야합니다. 그런 다음이 선의 어느 지점에서나 색상을 찾을 수 있어야합니다. 나의 현재의 접근 방식은 이것이다 :iOS 두 색상 사이의 지점에서 색상 찾기
if (fahrenheit < kBottomThreshold)
{
return [UIColor colorWithRed:kBottomR/255.0f green:kBottomG/255.0f blue:kBottomB/255.0f alpha:1];
}
if (fahrenheit > kTopThreshold)
{
return [UIColor colorWithRed:kTopR/255.0f green:kTopG/255.0f blue:kTopB/255.0f alpha:1];
}
double rDiff = kTopR - kBottomR;
double gDiff = kTopG - kBottomG;
double bDiff = kTopB - kBottomB;
double tempDiff = kTopThreshold - kBottomThreshold;
double rValue;
double gValue;
double bValue;
rValue = kBottomR + ((rDiff/tempDiff) * fahrenheit);
gValue = kBottomG + ((gDiff/tempDiff) * fahrenheit);
bValue = kBottomB + ((bDiff/tempDiff) * fahrenheit);
return [UIColor colorWithRed:rValue/255.0f green:gValue/255.0f blue:bValue/255.0f alpha:1];
변수 :
fahrenheit
나는 색상을 찾으려면이 가상 줄 수 내 함수에 전달 변수입니다.kTopR
,kTopB
및kTopG
은 그래디언트의 한쪽 끝의 RGB 값입니다. 그들의kBottom
사본과 동일합니다.kBottomThreshold
및kTopThreshold
은 내 그라디언트의 끝점입니다.fahrenheit
은 그라데이션의 한쪽 끝을 넘어, 기울기가 다른 값으로 '점프'에 보인다
여기 내 문제입니다.
내 S3 서버에서 호스팅되는 예제 프로젝트 here을 포함 시켰습니다.
당신은 정말 프로젝트를 다운로드하여 무슨 뜻인지 확인하기 위해 시뮬레이터/장치에 그것을 시도 할 필요가 (당신은 스마트 미친 그냥 코드를보고 말할 수없는)