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