我在我的顶部创建了3个按钮。获取它们的偏移并给它们IBAction
相同。
我想根据按下哪个按钮更改下面的图像。
此外,我必须将这些图像传递给另一个ViewControler,此处
我有3个名为bundle1
,bundle2
,bundle3
的数组。在每个数组中,我有5个图像集,在我的Viewdidload
中如下,
bundle1 = @[@"1.png",@"2.png", @"3.png", @"4.png" ,@"5.png"];
bundle2 = @[@"6.png", @"7.png", @"8.gif",@"9.jpeg", @"10.jpeg" ];
bundle3 = @[@"11.jpg", @"12.jpg" ,@"13.jpeg", @"14.jpeg", @"15.jpeg"];
现在我已经使用了mutabledictionary,它有3个数组,我给了他们一个特定的密钥 如下。
mutdict = [[NSMutableDictionary alloc] initWithObjectsAndKeys: bundle1 , @"key1" , bundle2 , @"key2" , bundle3 , @"key3" ,nil];
现在下面是上3按钮的IBAction代码(所有3个按钮都相同)。
-(IBAction)morebtn:(id)sender
{
for (UIView *subview in [scroll subviews])
{
[subview removeFromSuperview];
}
arraydata = [[NSMutableArray alloc] init];
if ([sender tag] == 1) {
NSLog(@"hey btn1 clicked");
for (UIImage *b in arraydata)
{
[arraydata removeAllObjects];
}
arraydata = [mutdict valueForKey:@"key1"];
}
if ([sender tag] == 2) {
NSLog(@"hey btn2 clicked");
for (UIImage*b in arraydata)
{
[arraydata removeAllObjects];
}
arraydata = [mutdict valueForKey:@"key2"];
}
if ([sender tag] == 3) {
NSLog(@"hey btn3 clicked");
for (UIImage*b in arraydata)
{
[arraydata removeAllObjects];
}
arraydata = [mutdict valueForKey:@"key3"];
}
int x=10,y=300;
for (int k=0; k<arraydata.count; k++) {
NSLog(@"main called");
UIButton *btn=[UIButton buttonWithType:UIButtonTypeCustom];
[btn setImage:[UIImage imageNamed:[arraydata objectAtIndex:k]] forState:UIControlStateNormal];
btn.tag=k;
btn.frame=CGRectMake(x, y, 100, 100);
[btn addTarget:self action:@selector(btn4images1:) forControlEvents:UIControlEventTouchUpInside];
x+=100;
scroll = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 300, self.view.frame.size.width, 200)];
scroll.contentSize = CGSizeMake(self.view.frame.size.width , 200);
[scroll addSubview:btn];
[self.view addSubview:scroll];
}
}
在上面的代码中我跟踪按下了哪个按钮,根据它,我将在我的NSArray
中命名为arraydata
。
当我第一次点击所有3个上方按钮时,它们会显示与其阵列相关的图像,但是当我第二次单击button1(位于顶部)时,与button3相关的图像也会显示在Buttonbackground中(位于下方部分。)
所以单击下面部分按钮背景图像中的button1会重叠。好像我的NSMutableDictionary
存储了最后一个数组的数据。不知道到底发生了什么。