2009-12-24 1 views

답변

4

확실! loupe의 배경색은 항상 텍스트 필드의 backgroundColor 속성과 일치합니다. (그러나 background 속성입니다.) 예 : 텍스트 필드 절대적으로 투명한 배경을 필요로하는 경우

textField.textColor = [UIColor whiteColor]; 
textField.backgroundColor = [UIColor blackColor]; 

, 당신은 텍스트 아래 그래픽을 포함하는 배경 이미지를 사용하여-에 의해 가짜해야합니다 들. 이처럼, 당신의 인터페이스의 스크린 샷을 복용하고 프로그래밍 방식 또는 자르기 수동으로 그것을 할 수 있습니다

배경이 배경 색상 위에 그려집니다 때문에
#import <QuartzCore/CALayer.h> 
... 
// `view` contains the graphics underneath the text field 
UIGraphicsBeginImageContext(textField.bounds.size); 
CGContextRef context = UIGraphicsGetCurrentContext(); 
CGPoint origin = [textField convertPoint:textField.bounds.origin toView:view]; 
CGContextTranslateCTM(context, -origin.x, -origin.y); 
[view.layer renderInContext:context]; 
UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 
textField.background = image; 

는, 텍스트 필드 투명 나타납니다 , 그리고 당신은 당신이 원하는 루페에 배경색을 사용할 수 있습니다.

+0

위대한 솔루션입니다. 말하자면, loupe는'background'가 아닌'backgroundColor'와 만 일치합니다. 그래서 두 코드 스 니펫을 결합해야합니다. 먼저'backgroundColor'를 검정색과 같은 흰색 텍스트의 적절한 색으로 설정 한 다음'background'를 설정하십시오. 루페는 검정색을 배경으로 표시하며 이미지는 다른 모든 시간에 나타납니다. 이것은 아마도 버그 (루퍼가 '배경'을 무시합니다)를 해결하므로 업데이트를 기다려주십시오. – greg

+0

iOS 5.1에는 행운이 없습니다. backgroundColor가 배경을 재정의하는 것처럼 보입니다 - 배경 이미지가 설정되어 있어도 단색 검정색 배경이 나타납니다. – davehayden

+0

신경 쓰지 마세요. 시뮬레이터의 동작만으로도 디바이스에서 잘 보입니다.:) – davehayden

1

저는 두렵습니다. 문제는 아이폰 OS의 초기 버전 이후에 존재했는데, 화이트 텍스트는 커서 위치 지정 루페에도 흰색으로 나타납니다. 이것이 앱의 심각한 문제인 경우, 유일한 옵션은 텍스트 색상을 변경하거나 Apple에서 레이더 기능 요청을 제출하는 것입니다.

0

제가이 문제에 대해 사용한 한 가지 해결책은 편집하는 동안 텍스트 색상을 확대경에 표시되는 텍스트 색상으로 변경하는 것입니다 (전체보기에서 좋지 않을 수 있음). 편집이 완료되면 더 좋은 색상으로 표시됩니다.

시각적 관점에서 필드의 텍스트를 강조 표시 한 것처럼 작동하며 편집하지 않을 때 입력 한 데이터를 표시 할 때 원하는 색상을 사용할 수 있습니다.

didBeginEditing의 루페에서 대비가 충분한 강조 색상으로 색상을 설정 한 다음 didEndEditing에서 다시 변경하십시오.

한 가지 가능한 접근 방식과 몇 가지 앱에서 사용한 방식 중 하나입니다.

예 :

- (void)textFieldDidBeginEditing:(UITextField *)textField { 
    textField.textColor = [UIColor colorWithRed:116.0/255.0 green:160.0/255.0 blue:246.0/255.0 alpha:1.0]; 
} 

- (void)textFieldDidEndEditing:(UITextField *)textField 
{ 
    textField.textColor = [UIColor colorWithRed:224.0/255.0 green:224.0/255.0 blue:224.0/255.0 alpha:1.0]; 
} 
1

글래스는 textView.backgroundColor에서 색상을 가져옵니다. 나는이 조금 오래 알고 있지만, iOS5를, 그것은 시뮬레이터 전용 문제가 될 것으로 보인다

@interface FakeBgTextView : UITextView { 
    UIColor *_fakeBackgroundColor; 
} 

- (UIColor *)backgroundColor; 
- (void)setFakeBackgroundColor:(UIColor *)color; 
@end 

@implementation FakeBgTextView 
... 
- (UIColor *)backgroundColor { 
    return _fakeBackgroundColor; 
} 

- (void)setFakeBackgroundColor:(UIColor *)color { 
    [_fakeBackgroundColor release]; 
    _fakeBackgroundColor = [color retain]; 
} 
... 
@end 
+0

답변의 품질을 향상 시키려면 게시물로 인해 문제가 해결되는 방법/이유를 포함 시키십시오. –

1

: 그래서 위대한 작품을 몇 가지 더러운 해킹을했다. 장치에서 올바르게 렌더링됩니다.

관련 문제