Tôi cần tạo nút tùy chỉnh thông qua mã, đây là cách tôi hiện đang thực hiện.Tạo Nút tùy chỉnh bằng UIBiew hoặc ghi đè UIButton?
-(void) initialiseButtons
{
int ypos = playerImage.frame.origin.y + playerImage.frame.size.height + 8;
for(int i=0; i<totalButtons; i++)
{
UIButton *newButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[newButton setFrame:CGRectMake(20, ypos, 220, 30)];
newButton.tag = 10 + i;
[newButton addTarget:self action:@selector(statTapped:) forControlEvents:UIControlEventTouchUpInside];
[self.frontView addSubview:newButton];
ypos += 30 + 7;
}
}
Điều này tạo ra các nút trống hoàn hảo thông qua mã, cung cấp cho họ thẻ và gán chức năng gọi lại trên touchUpInside.
Nút tùy chỉnh cần có khả năng xử lý hiển thị hình ảnh khi nhấn xuống. Nó cần để có thể vẽ 2 phần văn bản. 1 liên kết với phía bên tay trái của nút và 1 căn chỉnh về phía bên phải của nút.
Sếp của tôi được đề xuất thay vì các nút tôi sử dụng Chế độ xem. Tôi không hiểu làm thế nào điều này sẽ làm việc. Khi tôi bắt đầu suy nghĩ về nó, tôi nghĩ rằng nó sẽ đòi hỏi phải có một viewcontroller dành riêng cho các nút. Và một số phương pháp vẽ? Nghe có vẻ phức tạp và tôi không hiểu làm thế nào nó có thể được thực hiện.
Có phương pháp đơn giản hơn bằng cách đặt UIButton ghi đè lớp tùy chỉnh không? Tôi đã thực hiện một lớp thử nghiệm đơn giản trước đó nhưng không có gì được rút ra trong các vị trí nút khi tôi sử dụng chúng ở vị trí của lớp UIButton bình thường. Tôi mong đợi tôi sẽ thấy buttonUp.png được vẽ.
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
@interface CardButton : UIButton {
}
@end
#import "CardButton.h"
#import <UIKit/UIKit.h>
@implementation CardButton
- (id)initWithFrame:(CGRect)frame
{
if (self = [super initWithFrame:frame])
{
[self setImage:[UIImage imageNamed:@"buttonUp.png"] forStates:UIControlStateNormal];
self.adjustsImageWhenHighlighted = YES;
}
return self;
}
@end
Mọi người có thể cho tôi một số gợi ý về điều này? Tôi khá bị chặn vào lúc này. Đã đọc một số chủ đề khác liên quan đến các nút nhưng không có gì rõ ràng trong đầu tôi cách giải quyết vấn đề
CAnt tìm ra cách thực hiện việc này. Gonna để lại nó 24 giờ và xem nếu nó có ý nghĩa hơn khi tôi trở lại với nó. Cảm ơn sự giúp đỡ Eiko đánh giá cao của nó :) –
Bạn có thể cung cấp thêm một số thông tin về điều này nhà máy? –
@Lechazar Todorov Chỉ cần tạo phương thức lớp (tĩnh) * ở đâu đó * để tạo và cấu hình nút. Bằng cách đó bạn có thể tạo bao nhiêu nút của loại này theo ý muốn của bạn, nhưng không cần phải fiddle với subclassing nản lòng. – Eiko