2012-07-12 3 views
5

일부 자리 표시 자 텍스트가있는 UITextfield가 있습니다.자리 표시 자 텍스트 및 UITextField에서 정렬되지 않는 텍스트가 입력되었습니다.

두 가지 정렬 속성을 모두 사용했습니다. 그러나, palceholder 텍스트는 여전히 상단에 조금 있습니다. 누구든지 나를 도울 수 있습니까?

감사합니다.

+0

사용중인 실제 코드를 게시 할 수 있습니까? – Nosrettap

+0

@Nosrettap : IB를 사용하여 생성되었습니다. – Ahsan

+0

이 문제가 여전히 발생합니다. 수정 사항을 찾았습니까? :/ –

답변

0

UITextField 설명서에 따르면 textAlignment 속성을 사용해야합니다. 문서 상태 "이 속성은 주 텍스트 문자열과 자리 표시 자 문자열 모두에 적용되며이 속성의 기본값은 UITextAlignmentLeft입니다."

그래서 코드는 같이 보일 것입니다 :

textfield.textAlignment = UITextAlignmentLeft 

또는 당신이 = 기호 다음에 UITextAlignmentCenter 또는 UITextAlignmentRight를 사용할 수있는 텍스트를 정렬하는 방법에 따라.

+0

글쎄, 이건 도움이되지 않습니다. 텍스트에 입력 된 것과 같이 정렬되거나 자리 표시 자 텍스트가 정렬됩니다 (가운데 수직 정렬). 이 두 텍스트가 모두 제대로 정렬되지 않은 이유를 잘 모릅니다. – Ahsan

0

나는 Y 사이즈로 놀아 보겠다. CGRectMake를 사용하여 프레임을 만들었다. 어쩌면 그것을 더 작게 만들 수 있을까요?

3
textField.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter; 
1

다음은 자리 표시 자 대 텍스트 정렬을 수정해야하는 MonoTouch의 해결책입니다. 주석에서 언급했듯이 - 편집, 정적 텍스트 및 정적 자리 표시 자의 세 가지 구분 된 부분이 있습니다. Objective-C의 해당 기능은 입니다. drawTextInRect :drawPlaceholderInRect :입니다.

내 솔루션은 잘못 정렬 된 항목을 하위 클래스로 나누고 오프셋하는 것이 었습니다. 불행히도이 문제는 글꼴 파일 자체와 편집 모드가 어떻게 영향을 미치는지, iOS가 정적 텍스트를 렌더링하는 방식과 관련이있는 것으로 보입니다.

희망이 있으면 도움이됩니다.

앨리슨

public class MyTextField : UITextField 
{ 
    public MyTextField(RectangleF rect) : base(rect) 
    { 
    } 

    public override void DrawPlaceholder(RectangleF rect) 
    { 
     base.DrawPlaceholder(new RectangleF(rect.X, rect.Y + 2, rect.Width, rect.Height)); 
    } 

    public override void DrawText(RectangleF rect) 
    { 
     base.DrawText(new RectangleF(rect.X, rect.Y + 2, rect.Width, rect.Height)); 
    } 
} 
관련 문제