2011-04-05 22 views
9

Tôi đang gọi số sizeToFit trên UILabel có văn bản được căn chỉnh đúng trong đó. Nó co lại chiều cao và chiều rộng của UILabel và phù hợp với văn bản ở trên cùng bên trái của UILabel.Trong iOS - Làm cách nào để phù hợp với UILabel với văn bản của nó, mà không thay đổi vị trí của nó?

Hiện tại ... vị trí của UILabel không chính xác. Làm thế nào tôi có thể làm cho các UILabel ở lại vị trí ban đầu của nó (phải liên kết) hoặc di chuyển nó để nó sẽ xuất hiện ở vị trí ban đầu của nó?

Một lần nữa - vấn đề là phương pháp sizeToFit đang thu nhỏ chiều rộng từ bên phải của UILabel. Nó đang xử lý văn bản UILabel như căn trái. Nhưng văn bản của tôi được căn phải. Vì vậy, đường viền bên phải của UILabel là nơi văn bản của tôi bắt đầu.

Trả lời

3

Bạn kiểm tra độ rộng trước & sau đó, sau đó di chuyển trung tâm của chánh kiến ​​bởi sự khác biệt/2.

Bằng cách này, tôi nghĩ rằng "hộp" (khung) được thu nhỏ theo cả hai hướng, giữ trung tâm còn nguyên vẹn.

15
@implementation UILabel (Additions) 

- (void)sizeToFitWithAlignmentRight { 
    CGRect beforeFrame = self.frame; 
    [self sizeToFit]; 
    CGRect afterFrame = self.frame; 
    self.frame = CGRectMake(beforeFrame.origin.x + beforeFrame.size.width - afterFrame.size.width, self.frame.origin.y, self.frame.size.width, self.frame.size.height); 
} 

@end 
+0

gọn gàng. gợi ý tốt! – Rambatino