내 Xamarin.iOS 앱에서 패딩을 사용하여 UILabel
을 만들려고합니다. 기본 목표 - C 응용 프로그램에서 가장 인기있는 솔루션은 drawTextInRect
을 무시한다 :이 보인다Xamarin.iOS에서 패딩이있는 UILabel?
- (void)drawTextInRect:(CGRect)rect {
UIEdgeInsets insets = {0, 5, 0, 5};
return [super drawTextInRect:UIEdgeInsetsInsetRect(rect, insets)];
}
으로 간단하게, 내가 꽤 C 번호로 번역하는 방법을 알아낼 수 없습니다.
internal class PaddedLabel : UILabel
{
public UIEdgeInsets Insets { get; set; }
public override void DrawText(RectangleF rect)
{
var padded = new RectangleF(rect.X + Insets.Left, rect.Y, rext.Width + Insets.Left + Insets.Right, rect.Height);
base.DrawText(padded);
}
}
이 레이블의 텍스트를 이동하는 것 않지만, 라벨의 크기를 조정하지 않습니다 여기에 최선 자상입니다.
나는 주된 이슈가 UIEdgeInsetsInsetRect
의 Xamarin에 해당하지 않는다고 생각한다.
제안 사항?
고마워요! 이것은 Objective-C 버전의 올바른 번역 인 것으로 보입니다. 예상대로 텍스트를 이동하지만 텍스트는 오른쪽으로 잘립니다. 즉, 인서트를 수용하기 위해 'UILabel'의 크기가 조정되지 않습니다. 하지만 그것은 별개의 문제 일 수 있습니다. –
그 코드는 드로잉을 변경하기 만하므로'UILabel'은 인세 트를 인식하지 못합니다 (또한 동작을 변경하지 않습니다). – poupou
그건 의미가 있습니다.라벨 너비를 결정할 때 인세 트를 고려해야 할 부분에 대한 제안은 무엇입니까? 가능한 경우 동적으로 크기를 조정하고 싶습니다. –