Xcode 从字符串创建对UIImageView的引用

Xcode 从字符串创建对UIImageView的引用,xcode,nsstring,uiimageview,Xcode,Nsstring,Uiimageview,我有一系列在IB中创建的UIImageView。我想根据一些按钮的按下来显示和隐藏它们。我现在有一个方法,如果按下1,那么隐藏2,3,4,如果按下2,那么隐藏1,3,4。这是可行的,但我正在努力改进代码以进行更新 我的背景是actionscript,所以我不确定我所做的是否正确 我基本上想要计算UIImageView的字符串引用,就像我使用eval(string)一样 我使用的方法是从一个字符串和一个数字创建一个字符串,所以我得到“image1”。所有这些都可以,但我需要将其计算到UIImage

我有一系列在IB中创建的UIImageView。我想根据一些按钮的按下来显示和隐藏它们。我现在有一个方法,如果按下1,那么隐藏2,3,4,如果按下2,那么隐藏1,3,4。这是可行的,但我正在努力改进代码以进行更新

我的背景是actionscript,所以我不确定我所做的是否正确

我基本上想要计算UIImageView的字符串引用,就像我使用eval(string)一样

我使用的方法是从一个字符串和一个数字创建一个字符串,所以我得到“image1”。所有这些都可以,但我需要将其计算到UIImageView中,以便更新alpha值


首先,这可能吗?如果不可能,我应该怎么做?我开始认为在interface builder中设置此选项可能没有帮助?

这可能不是一个好的工作方式。您需要的是一个ImageView数组。然后,您只需要一个数字索引,就可以遍历ImageView数组,隐藏没有所选索引的所有内容

但是如何获得一组ImageView呢?请参阅,它解释了如何使用IBOutletCollection

如果每个视图都有一个单独的按钮,那么也可以将它们放入IBOutletCollection中。这样你就可以得到这样的东西:

- (IBAction) imageButtonPressed:(id) sender;
{
    // The sender is the button that was just pressed.
    NSUInteger chosenIndex = [[self imageButtons] objectAtIndex:sender];
    for (NSUInteger imageIndex = 0; imageIndex < [[self imageViews] count]; imageIndex++)
    {
        // Hide all views other than the one associated with the pressed button.
        if (imageIndex != chosenIndex)
        {
            [[[self imageViews] objectAtIndex:imageIndex] setHidden:YES];
        }
        else
        {
            [[[self imageViews] objectAtIndex:imageIndex] setHidden:NO];
        }
    }
}
NSMutableDictionary *viewLookup;
[viewLookup setObject:[[self imageViews] objectAtIndex:0] forKey:@"image0"];
[viewLookup setObject:[[self imageViews] objectAtIndex:1] forKey:@"image1"];
[viewLookup setObject:[[self imageViews] objectAtIndex:2] forKey:@"image2"];

[viewLookup setObject:[[self imageButtons] objectAtIndex:0] forKey:@"button0"];
// ...
// Can now look up views by name.
// ...
NSString *viewName = @"image1";
UIView *viewFound = [viewLookup objectForKey:viewName];
[viewFound doSomething];