Tôi đang cố gắng hiển thị Nút có văn bản (một/nhiều dòng) ở dưới cùng của hình ảnh & (phải trông tròn) tại hàng đầu; hình ảnh văn bản & phải được đánh dấu khi nhấp chuột. Như thế này:Tạo UIButton (UIButtonTypeCustom) với hình ảnh ở trên cùng và nhãn ở phía dưới cùng với AutoLayout
Dưới đây là mã trong viewDidLoad
:
btArtAndPainting = [UIButton buttonWithType:UIButtonTypeCustom];
btArtAndPainting.backgroundColor = [[UIColor cyanColor] colorWithAlphaComponent:1.00f];
btArtAndPainting.translatesAutoresizingMaskIntoConstraints = NO;
self.vwContainer.translatesAutoresizingMaskIntoConstraints = NO;
[self.vwContainer addSubview:btArtAndPainting];
[btArtAndPainting setImage:[UIImage imageNamed:kIMGCategoryArtAndPaintingNormal] forState:UIControlStateNormal];
[btArtAndPainting setImage:[UIImage imageNamed:kIMGCategoryArtAndPaintingHighlighted] forState:UIControlStateHighlighted];
[btArtAndPainting setTitle:@"Art and Painting" forState:UIControlStateNormal];
[btArtAndPainting setTitle:@"Art and Painting" forState:UIControlStateHighlighted];
btArtAndPainting.tintColor = [UIColor redColor];
btArtAndPainting.titleLabel.font = [UIFont systemFontOfSize:10.00f];
btArtAndPainting.titleLabel.textColor = [UIColor whiteColor];
btArtAndPainting.titleLabel.textAlignment = NSTextAlignmentCenter;
btArtAndPainting.titleLabel.lineBreakMode = NSLineBreakByWordWrapping | NSLineBreakByTruncatingTail;
btArtAndPainting.titleLabel.numberOfLines = 0;
btArtAndPainting.imageEdgeInsets = UIEdgeInsetsMake(0.00f, 8.00f, 20.00f, 8.00f);
btArtAndPainting.titleEdgeInsets = UIEdgeInsetsMake(32.00f, 0.00f, 0.00f, 0.00f);
NSArray *constraintsWidth = [NSLayoutConstraint constraintsWithVisualFormat:@"H:|-10-[btArtAndPainting(60)]|"
options:0
metrics:nil
views:viewDictionary];
NSArray *constraintsHeight = [NSLayoutConstraint constraintsWithVisualFormat:@"V:[searchBar]-10-[btArtAndPainting(60)]"
options:0
metrics:nil
views:viewDictionary];
[self.vwContainer addConstraints:constraintsHeight];
[self.vwContainer addConstraints:constraintsWidth];
[btArtAndPainting layoutIfNeeded];
[btArtAndPainting needsUpdateConstraints];
Vấn đề là văn bản không được hiển thị ở tất cả (trong cả hai & bang nhấn mạnh bình thường). Xem hình ảnh được liên kết bên dưới. Làm cách nào để sử dụng UIEdgeInset để nhường chỗ cho văn bản? Tôi cũng đã cố gắng tạo ra một loại UIButton
nhưng hiệu quả là nhiều hơn hoặc ít hơn như nhau.
Nếu bạn sửa đổi một ** UIButton **, tôi mạnh mẽ khuyên bạn tạo ** CustomView ** –
@grhnkdlk Tôi nghĩ rằng sẽ không được yêu cầu. Bạn có thể vui lòng cho tôi biết lợi ích của nó trong trường hợp sử dụng của tôi là gì? – Smarto
Trong ** UIButton ** rất khó sửa đổi, nhưng tùy chỉnh linh hoạt hơn và miễn phí hơn nhiều. Đối với tôi giải pháp của bạn là * customview * –