Làm cách nào để đặt phông chữ khác nhau cho các trạng thái UIbutton khác nhau? Cảm ơn sự giúp đỡ của bạn về điều này.Đặt Phông chữ khác nhau cho các trạng thái khác nhau của UIButton
Trả lời
Bạn có thể đặt phông chữ trên Chế độ xem thiết kế để biết thêm chi tiết:
Bạn có thể đặt tất cả điều này trong Trình tạo giao diện. Trừ khi bạn có lý do rất chuỗi để làm điều đó trong mã. Dưới đây là cách thực hiện trong IB -
Mở thanh bên phải & rồi nhấp vào "Cấu hình trạng thái", ở đó bạn thấy các trạng thái khác nhau của nút, Mặc định, Được đánh dấu, Đã chọn & Đã tắt. Giờ đây, bạn có thể đặt các hình ảnh khác nhau cho mỗi trạng thái, loại phông chữ khác nhau là & màu phông chữ cho mỗi trạng thái. Hopr this helps ...
Cảm ơn ..!
Đây là khối mã hoạt động của tôi. IB_DESIGNABLE
chỉ là một cải tiến nhỏ để làm cho kết quả visualizable trên Interface Builder :-)
@interface MyButton : UIButton
@end
IB_DESIGNABLE @implementation MyButton
// Here you can override the look & feel for each state
// Actually not only fontSize, but any writable properties ^_^
- (void)setEnabled:(BOOL)enabled {
[super setEnabled:enabled];
self.titleLabel.font = enabled ? [UIFont systemFontOfSize:14] : [UIFont systemFontOfSize:10];
}
- (void)setHighlighted:(BOOL)highlighted {
[super setHighlighted:highlighted];
self.titleLabel.font = highlighted ? [UIFont systemFontOfSize:14] : [UIFont systemFontOfSize:12];
}
- (void)setSelected:(BOOL)selected {
[super setSelected:selected];
self.titleLabel.font = selected ? [UIFont boldSystemFontOfSize:14] : [UIFont systemFontOfSize:12];
}
@end
Bạn có thể thấy thể thiết kế MyButton
s font chữ phản ánh trong xây dựng giao diện như thế này
@inforeqd Vui lòng cho tôi biết nếu giải pháp này hoạt động cho yo – Ducky
Chỉ cần tạo nút tùy chỉnh của bạn . Ghi đè phụ đề bố cục. Đặt phông chữ bắt buộc của bạn.
// Interface
@interface EezyButton : UIButton
@end
//Implementation
#import "EezyButton.h"
@implementation EezyButton
- (void)layoutSubviews{
if (self.state == UIControlStateNormal) {
[self.titleLabel setFont:[UIFont systemFontOfSize:12]];
}
else if (self.state == UIControlStateHighlighted){
[self.titleLabel setFont:[UIFont systemFontOfSize:25]];
}
else if (self.state == UIControlStateDisabled){
[self.titleLabel setFont:[UIFont systemFontOfSize:12]];
}
else if (self.state == UIControlStateSelected){
[self.titleLabel setFont:[UIFont systemFontOfSize:28]];
}
[super layoutSubviews];
}
@end
Đây là câu hỏi rất hay, nhắc tôi tạo lớp con UIButton
cho phép cài đặt phông chữ của tiểu bang!
Tôi cũng đã viết một số mã mẫu cho biết cách đặt phông chữ. Nếu bạn đang sử dụng Trình tạo giao diện, hãy đặt lớp của nút thành ConfigurableButton
. Trong mã, nút cũng phải được khai báo là ConfigurableButton
, vì tôi đã thêm các thuộc tính mới và phương thức setFont:forState:
.
Vui lòng để lại nhận xét về mọi cải tiến có thể thực hiện!
View Controller thực hiện
#import "ViewController.h"
#import "ConfigurableButton.h"
@interface ViewController()
@property (weak, nonatomic) IBOutlet ConfigurableButton *toggleButton;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
//Set the fonts for button's states
_toggleButton.normalFont = [UIFont fontWithName:@"BradleyHandITCTT-Bold" size:14];
_toggleButton.highlightedFont = [UIFont fontWithName:@"Chalkduster" size:14];
_toggleButton.selectedFont = [UIFont fontWithName:@"Zapfino" size:14];
_toggleButton.disabledFont = [UIFont fontWithName:@"Arial" size:14];
}
@end
ConfigurableButton.h
#import <UIKit/UIKit.h>
IB_DESIGNABLE
/**
* A button that allows fonts to be assigned to each of the button's states.
*
* A state font can be specified using setFont:forState, or through one of the
* four state Font properties.
*
* If a font is not specified for a given state, then
* the System font will be displayed with a font size of 15.
*/
@interface ConfigurableButton : UIButton
@property (strong, nonatomic) UIFont *normalFont;
@property (strong, nonatomic) UIFont *highlightedFont;
@property (strong, nonatomic) UIFont *selectedFont;
@property (strong, nonatomic) UIFont *disabledFont;
/**
* Set a font for a button state.
*
* @param font the font
* @param state a control state -- can be
* UIControlStateNormal
* UIControlStateHighlighted
* UIControlStateDisabled
* UIControlStateSelected
*/
- (void) setFont:(UIFont *)font forState:(NSUInteger)state;
@end
ConfigurableButton.m
#import "ConfigurableButton.h"
@implementation ConfigurableButton
//Sets one of the font properties, depending on which state was passed
- (void) setFont:(UIFont *)font forState:(NSUInteger)state
{
switch (state) {
case UIControlStateNormal:
{
self.normalFont = font;
break;
}
case UIControlStateHighlighted:
{
self.highlightedFont = font;
break;
}
case UIControlStateDisabled:
{
self.disabledFont = font;
break;
}
case UIControlStateSelected:
{
self.selectedFont = font;
break;
}
default:
{
self.normalFont = font;
break;
}
}
}
/**
* Overrides layoutSubviews in UIView, to set the font for the button's state,
* before calling [super layoutSubviews].
*/
- (void) layoutSubviews
{
NSUInteger state = self.state;
switch (state) {
case UIControlStateNormal:
{
[self setTitleFont:_normalFont];
break;
}
case UIControlStateHighlighted:
{
[self setTitleFont:_highlightedFont];
break;
}
case UIControlStateDisabled:
{
[self setTitleFont:_disabledFont];
break;
}
case UIControlStateSelected:
{
[self setTitleFont:_selectedFont];
break;
}
default:
{
[self setTitleFont:_normalFont];
break;
}
}
[super layoutSubviews];
}
/**
* Private
*
* Convenience method that falls back to the System font,
* if no font is configured.
*/
- (void) setTitleFont:(UIFont *)font
{
if (!font) {
font = [UIFont systemFontOfSize:15];
}
self.titleLabel.font = font;
}
@end
Giải pháp đơn giản nhất là để thiết lập một danh hiệu do cho mỗi tiểu bang UIControl
:
var attributes = [String : AnyObject]()
attributes[NSForegroundColorAttributeName] = UIColor.redColor()
attributes[NSFontAttributeName] = UIFont.systemFontOfSize(15)
let normal = NSAttributedString(string: "normal", attributes: attributes)
button.setAttributedTitle(normal, forState: .Normal)
attributes[NSForegroundColorAttributeName] = UIColor.redColor()
attributes[NSFontAttributeName] = UIFont.boldSystemFontOfSize(15)
let selected = NSAttributedString(string: "selected", attributes: attributes)
button.setAttributedTitle(selected, forState: .Selected)
- 1. Trạng thái Ajax khác nhau cho các thành phần khác nhau trong PrimeFaces
- 2. css khác nhau kích cỡ phông chữ trên các gia đình khác nhau
- 3. Xác định kích thước phông chữ khác nhau cho mỗi phông chữ trong một phông chữ-gia đình
- 4. Đặt phông chữ và màu sắc khác nhau để một phần của một TextView
- 5. Sự khác nhau giữa cột 'trạng thái' và 'trạng thái' trong bảng sales_flat_order trong Magento
- 6. TextView với phông chữ và kiểu khác nhau?
- 7. Phông chữ khác nhau cho tất cả các tiêu đề trong LaTeX
- 8. Các vấn đề với việc thiết lập một số phông chữ khác nhau cho UILabel
- 9. Trạng thái hỗ trợ cho SHA-2 trong các nền tảng khác nhau là gì?
- 10. WPF - Cách thanh lịch vô hiệu hóa và cho phép các điều khiển khác nhau dựa trên các trạng thái khác nhau của Mô hình sử dụng MVVM
- 11. kích thước phông chữ ggplot cho các thành phần khác nhau
- 12. Các Python CMS khác nhau và trạng thái của chúng là gì?
- 13. Đặt các phần khác nhau của một trường biểu mẫu để có phông chữ khác nhau bằng cách sử dụng iTextSharp
- 14. thay đổi phông chữ trong một JTextArea cho các dòng khác nhau
- 15. Cách đặt bố cục mẫu khác nhau cho các mô-đun khác nhau trong Symfony
- 16. Tạo ImageButton có hình dạng bất thường với các trạng thái nhấp chuột khác nhau
- 17. thiết UIButton phông chữ
- 18. Có thể đặt phông chữ khác nhau trong Một nhãn hiệu không?
- 19. Mức độ tương tác khác nhau của trạng thái trong haskell
- 20. phông chữ-biến thể: mũ nhỏ; cho thấy kích cỡ phông chữ khác nhau sử dụng Chrome hoặc Firefox
- 21. Thời gian chuyển tiếp css3 khác nhau cho trạng thái "thành" và "trả lại"
- 22. Sự khác nhau chính xác giữa các trạng thái MEM_RESERVE và MEM_COMMIT là gì?
- 23. Lưu trữ các thuộc tính đỉnh khác nhau trong các khác nhau của VBO
- 24. Cách duy trì trạng thái trên các phiên người dùng khác nhau trong ứng dụng vòng
- 25. Các trình duyệt khác nhau, các IP khác nhau?
- 26. các tệp không có sẵn và git unstaged hiển thị trạng thái khác nhau
- 27. hình ảnh khác nhau để bật và tắt trạng thái của một nút trong WPF
- 28. phông chữ tùy chỉnh với các chỉ số dọc khác nhau giữa số
- 29. Sử dụng cùng một phông chữ với các kích thước khác nhau trong libgdx
- 30. Quy tắc xác thực khác nhau của asp.net mvc cho các hành động khác nhau
Tôi nghĩ rằng những gì Dinesh đang cố gắng để nói là bạn có thể tạo ra một hình ảnh với một phông chữ khác nhau và sau đó thiết lập các nút để hình ảnh đó. –
Ok bây giờ tôi đang cập nhật câu trả lời ..! – Dinesh
bây giờ iam cập nhật câu trả lời, bạn có thể sau hình ảnh để thay đổi cấu hình nhà nước để kết hợp trong uibutton để chage phông chữ cho các trạng thái khác nhau uibutton. – Dinesh