tôi đã tạo ra một cái nhìn textfield subclassed bên trong điều khiển điểm của tôi, với kích thước phông chữ để , các AdjustFontSizeToWidth kích hoạt và kích thước phông chữ tối thiểu đến 10. Trường văn bản của tôi có văn bản giữ chỗ quá lớn để vừa với chế độ xem. Điều chỉnh kích thước phông chữ thành chiều rộng được kích hoạt và hệ thống đang giảm kích thước phông chữ xuống . Tôi không biết chính xác lý do tại sao , vì trình giữ chỗ vẫn không khớp (xem ảnh chụp màn hình) Bất kỳ ý tưởng nào tại sao điều này xảy ra? Tôi đã bỏ lỡ một cái gì đó? Tôi subclassed UITextField và ghi đè lên các phương pháp sau đây (không chắc chắn nó có liên quan, nhưng điều này dường như là phương pháp người có thể gây ra lỗi này):UITextField lớp con rối tung adjustFontSizeToWidth
- (CGRect)leftViewRectForBounds:(CGRect)bounds {
CGRect leftViewRect = [super leftViewRectForBounds:bounds];
if ([self shouldShowLeftView] == YES) {
CGFloat newHeight = self.frame.size.height * 0.5f;
if (self.leftImage) {
leftViewRect.size.width = newHeight;
}
leftViewRect.origin.x = kMargins;
leftViewRect.origin.y = (self.frame.size.height - leftViewRect.size.height)/2.0f;
}
return leftViewRect;
}
- (CGRect)textRectForBounds:(CGRect)bounds {
CGRect rectForBounds = [super textRectForBounds:bounds];
if ([self shouldShowLeftView] == YES) {
rectForBounds.origin.x += kMargins;
rectForBounds.size.width -= 2.0 * kMargins;
} else {
rectForBounds.origin.x += kMargins/2.0;
rectForBounds.size.width -= 2.0 * (kMargins/2.0);
}
return rectForBounds;
}
- (CGRect)editingRectForBounds:(CGRect)bounds {
CGRect rectForBounds = [super editingRectForBounds:bounds];
if ([self shouldShowLeftView] == YES) {
rectForBounds.origin.x += kMargins;
rectForBounds.size.width -= 2.0 * kMargins;
} else {
rectForBounds.origin.x += kMargins/2.0;
rectForBounds.size.width -= 2.0 * (kMargins/2.0);
}
return rectForBounds;
}
EDIT: Cập nhật, tôi cố gắng sử dụng this solution và điều chỉnh mã một chút để làm cho nó hoạt động cho trình giữ chỗ. Việc thay đổi kích thước phông chữ là tốt, nhưng giao diện người dùng bị rối loạn khi văn bản bị giảm, văn bản tự bù đắp ở bên trái, phía sau chế độ xem hình ảnh bên trái. Trên ảnh chụp màn hình, chúng ta có thể thấy rằng lề phải quá lớn và văn bản quá nhiều ở bên trái.
Có kích thước phông chữ tối thiểu của hệ thống. UITextField sẽ không thu nhỏ kích thước phông chữ như bạn mong đợi. – matt
Kích thước phông chữ tối thiểu của tôi là 10 và trình giữ chỗ có phông chữ với 14pt thay vì 15 tôi đã cung cấp theo mặc định, có thể được tính toán sai. Đó là lý do tôi hỏi. – Loadex