gpt4 book ai didi

ios - 如何以编程方式为一组 UIButton 设置单独的背景图像

转载 作者:可可西里 更新时间:2023-11-01 03:28:11 25 4
gpt4 key购买 nike

这是我以编程方式创建按钮的一段代码:

NSArray *buttonImage=[NSArray arrayWithObjects:[UIImage imageNamed:@"Cover_0.png"],
[UIImage imageNamed:@"Cover_1.png"],
[UIImage imageNamed:@"Cover_2.png"],
[UIImage imageNamed:@"Cover_3.png"],
[UIImage imageNamed:@"Cover_4.png"],
[UIImage imageNamed:@"Cover_5.png"],
[UIImage imageNamed:@"Cover_6.png"],
[UIImage imageNamed:@"Cover_7.png"],nil];

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = CGRectMake(0, 0, 200.0f, 200.0f);
[button setTitle:[NSString stringWithFormat:@"%i", index] forState:UIControlStateNormal];
[button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
button.titleLabel.font = [button.titleLabel.font fontWithSize:50];

[button setImage:buttonImage forState:UIControlStateNormal];
[button addTarget:self action:@selector(buttonTapped:) forControlEvents:UIControlEventTouchUpInside];
return button;

但是在运行它时我无法进入模拟器并抛出 Signal Sigabart 错误。谁能帮忙?

最佳答案

要使用选择器数组以编程方式创建按钮,您可以使用以下代码片段:

//定义策略

@interface DataItemStrategy : NSObject
@property(nonatomic, assign) SEL someSelector;
@end

@implementation DataItemStrategy

@synthesize someSelector = _someSelector;

-(id)initWithSelector:(SEL)someSelector
{
self = [super init];
if (self)
{
self.someSelector = someSelector;
}
return self;
}

@end


-(void)createButtons
{
NSArray *buttonImages =[NSArray arrayWithObjects:[UIImage imageNamed:@"Cover_0.png"],
[UIImage imageNamed:@"Cover_1.png"],
[UIImage imageNamed:@"Cover_2.png"],nil];

NSArray *dataStrategies = [NSArray arrayWithObjects:
[[[DataItemStrategy alloc] initWithSelector:@selector(buttonAction0:)] autorelease],
[[[DataItemStrategy alloc] initWithSelector:@selector(buttonAction1:)] autorelease],
[[[DataItemStrategy alloc] initWithSelector:@selector(buttonAction2:)] autorelease], nil];

CGRect buttonFrame = CGRectMake(0, 0, 50, 50);
for (NSInteger i = 0; i < [buttonImages count]; i++)
{
buttonFrame.origin.y += 50;
UIImage *buttonImage = [buttonImages objectAtIndex:i];
DataItemStrategy *dataStrategie = [dataStrategies objectAtIndex:i];
NSString *title = [NSString stringWithFormat:@"%d", i];
UIButton *button = [self buttonWithFrame:buttonFrame image:buttonImage action:dataStrategie.someSelector title:title];
[self.view addSubview:button];
}
}

-(UIButton *)buttonWithFrame:(CGRect)buttonFrame image:(UIImage *)buttonImage action:(SEL)buttonAction title:(NSString *)title
{
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = buttonFrame;
[button setTitle:title forState:UIControlStateNormal];
[button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
button.titleLabel.font = [button.titleLabel.font fontWithSize:50];

[button setImage:buttonImage forState:UIControlStateNormal];
[button addTarget:self action:buttonAction forControlEvents:UIControlEventTouchUpInside];
return button;
}

关于ios - 如何以编程方式为一组 UIButton 设置单独的背景图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11061362/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com