2012-12-07 1 views
0

enter image description here사용자의 UITextField이

처럼 사용자 정의 위의 이미지처럼 UITextField에 있어야합니다, 그래서 난 내 사용자 정의 클래스 UITextField 클래스를 확장 작성하려고합니다. 하지만 내 문제가 : 스트로크 그림자 RECT의 개요 및 내 사용자 지정 코드 내부 텍스트 필드에 대한 설정 흰색 배경은 다음과 같습니다

- (void)drawRect:(CGRect)rect 
{ 
    // Drawing code 
    self.autocorrectionType = UITextAutocorrectionTypeNo; 
    self.autocapitalizationType = UITextAutocapitalizationTypeNone; 
    CALayer *layer = self.layer; 
    layer.cornerRadius = 15.0; 
    layer.masksToBounds = YES; 
    layer.borderWidth = 1.0; 
    layer.borderColor = [[UIColor colorWithRed:0 green:0 blue:0 alpha:1] CGColor]; 
    [layer setShadowColor: [[UIColor blackColor] CGColor]]; 
    [layer setShadowOpacity:1]; 
    [layer setShadowOffset: CGSizeMake(2.0, 2.0)]; 
    [self setClipsToBounds:NO]; 
    [self setContentVerticalAlignment:UIControlContentVerticalAlignmentCenter]; 
    [self setContentHorizontalAlignment:UIControlContentHorizontalAlignmentLeft]; 
} 
    - (CGRect)textRectForBounds:(CGRect)bounds { 
      return CGRectMake(bounds.origin.x + 20, bounds.origin.y + 8, 
        bounds.size.width - 40, bounds.size.height - 16); 
} 
- (CGRect)editingRectForBounds:(CGRect)bounds { 
      return [self textRectForBounds:bounds]; 
} 

그래서 내 질문은 : 내가 여기 (누락 어떤 코드 설정 흰색 배경 내부 , 테두리의 윤곽선을 설정하십시오.) 도움을 주셔서 감사합니다!

답변

2

이 기능을 처음 사용해보십시오.
self.textField.background = myUIImage;
self.textField.borderStyle = UITextBorderStyleNone;

0

텍스트 필드 상자의 이미지를 사용하여 사용자 지정으로 설정된 일반 UITextField 뒤에 넣어서 투명하게 만듭니다. 그렇게하면 텍스트 필드 기능을 사용할 수 있고 그 뒤에 어떤 종류의 그래픽을 넣을 수 있습니다.

0

마지막으로, 나는 몇 가지 자습서를 읽은 후 내 문제를 해결, 여기에 내가

- (void)drawRect:(CGRect)rect 
{ 

    self.autocorrectionType = UITextAutocorrectionTypeNo; 
    self.autocapitalizationType = UITextAutocapitalizationTypeNone; 
    CALayer *layer = self.layer; 
    layer.backgroundColor = [[UIColor whiteColor] CGColor]; 
    layer.cornerRadius = 15.0; 
    layer.masksToBounds = YES; 
    layer.borderWidth = 1.0; 
    layer.borderColor = [[UIColor colorWithRed:0 green:0 blue:0 alpha:1] CGColor]; 
    [layer setShadowColor: [[UIColor blackColor] CGColor]]; 
    [layer setShadowOpacity:1]; 
    [layer setShadowOffset: CGSizeMake(0, 2.0)]; 
    [layer setShadowRadius:5]; 
    [self setClipsToBounds:NO]; 
    [self setContentVerticalAlignment:UIControlContentVerticalAlignmentCenter]; 
    [self setContentHorizontalAlignment:UIControlContentHorizontalAlignmentLeft]; 
    } 
    - (CGRect)textRectForBounds:(CGRect)bounds { 
     return CGRectMake(bounds.origin.x + 20, bounds.origin.y + 8, 
        bounds.size.width - 40, bounds.size.height - 16); 
    } 
    - (CGRect)editingRectForBounds:(CGRect)bounds { 
     return [self textRectForBounds:bounds]; 
    } 

을 쓴 내 코드