2011-03-17 2 views
1

큰 그림 : 이것은 성취하려는 것입니다. 누군가에게 문자 메시지를 보냅니다. UI/UX는 다음과 유사해야합니다. enter image description hereUITextField leftViewRectForBounds 메서드를 재정의하는 것처럼 보일 수 없습니다.

현재 3 개의 셀을 가진 UITableView를 사용하고 있습니다. 처음 두 개 ("받는 사람 :"및 "보낸 사람 :")은 44px입니다. UITextField를 UITableViewCell의 "contentView"안에 넣습니다. 모든 좋은. 사용자가 셀의 내용을 편집하도록 할 수 있습니다.

이제 leftView 속성을 사용하여 "받는 사람 :"텍스트가있는 UILabel을 표시하고 있습니다. 작동하지만 "받는 사람"레이블은 항상 UITextField의 왼쪽에 있습니다 (아래 img에 표시).

SDK 설명서에 따라. 왼쪽 뷰 모드는이 방법에 의해 결정됩니다 : leftViewRectForBounds :

을 토론에 따르면

이 방법 직접 호출하지 않아야합니다. 왼쪽 오버레이보기를 다른 위치에 두려면이 방법 을 무시하고 새 사각형을 반환 할 수 있습니다.

그래서 많은 성공없이 무시하려고했습니다. 누구든지 코드 스 니펫을 가지고 있다면 크게 감사하겠습니다. 하단 그림에서 "보낸 사람"을 "보낸 사람"으로 설정하고 "해킹"을 조금 해킹했지만 제대로하고 싶습니다. 그것의

// override leftViewRectForBounds method: 
- (CGRect)leftViewRectForBounds:(CGRect)bounds{ 
    CGRect leftBounds = CGRectMake(bounds.origin.x + 30, 0, 45, 44); 
    return leftBounds; 
} 

작은 변형하고 그래서 어떤 도움이 감사 작동하지 않는 것 : 이것은 내가 시도하는 것이다. 감사!!!

답변

4

당신은 같은 수업 뭔가를 할 수

@interface MyTextField : UITextField 
{ 
    //Declare your variable here  
} 
@end 

@implementation MyTextFiled 

// override leftViewRectForBounds method: 
- (CGRect)leftViewRectForBounds:(CGRect)bounds{ 
    CGRect leftBounds = CGRectMake(bounds.origin.x + 30, 0, 45, 44); 
    return leftBounds; 
} 

사용하여 myTextField 대신의 UITextField 아래.

+1

완벽하게 작동합니다. 감사! – okysabeni

0

textField를 customtextfield로 가져 오지 않은 경우이 메서드는 호출되지 않습니다.이 메서드를 재정의하려면 UITextField를 상속 한 사용자 지정 textField 클래스를 사용해야합니다.

관련 문제