NSDictionary存储最后一个数组中的对象

时间:2013-11-26 05:56:41

标签: ios objective-c uibutton nsarray nsmutabledictionary

我在我的顶部创建了3个按钮。获取它们的偏移并给它们IBAction相同。 我想根据按下哪个按钮更改下面的图像。

此外,我必须将这些图像传递给另一个ViewControler,此处 我有3个名为bundle1bundle2bundle3的数组。在每个数组中,我有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存储了最后一个数组的数据。不知道到底发生了什么。

0 个答案:

没有答案