iOS:一次设置多个按钮的透明度

标签 ios objective-c xcode animation nsdictionary

好吧,所以我真的不知道 NSDictionary 是否是正确的方法,但我正在使用淡入淡出动画让不同的按钮组在屏幕上出现和消失。我想将它们“划分”,可以这么说,分成不同的组,这样我就可以在一两行中完成此操作,而不必每次都重写所有按钮名称(有很多)。关于如何执行此操作的任何想法?

[UIView animateWithDuration: 1.5
        animations: ^(void)
        {
            //As an example i just called them button1, button2, etc.
            self.button1.alpha = 1;
            self.button2.alpha = 1;
            self.button3.alpha = 1;
            self.button4.alpha = 1;
            self.button5.alpha = 1;
        }
 ];

我将以上内容作为我要问的示例。有没有办法将所有按钮放在 NSDictionary 中并写一行(按钮当前所在的位置)来更改它们的所有 alpha?

最佳答案

如今,您在 Interface Builder 中添加的按钮的首选机制是 IBOutletCollection:

@property (strong, nonatomic) IBOutletCollection(UIButton) NSArray *buttons;

demonstrate hooking up outlet collection

显然,在 Interface Builder 中,您可以将各个按钮连接到 socket 集合。有关 IBOutletCollection 的讨论,请参阅 NSHipster 的 IBAction / IBOutlet / IBOutlet​Collection文章。

如果您不使用 Interface Builder,而是以编程方式创建这些按钮,您可以只使用 NSArray:

@property (strong, nonatomic) NSArray *buttons;

然后您自己填充:

self.buttons = @[self.button1, self.button2, self.button3, self.button4, self.button5, self.button6];

无论您如何构建此数组( socket 集合或手动填充),您都可以在更新按钮的属性时迭代该数组:

for (UIButton *button in self.buttons) {
    button.alpha = 1;
}

或者,更简单,您可以使用 setValue:forKey: 更新所有这些:

[self.buttons setValue:@1 forKey:@"alpha"];

关于iOS:一次设置多个按钮的透明度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31729369/

相关文章:

iphone - 将UIBarButtonItem添加到iPhone SDK上的UINavigationController

ios - 如何将 CLLCooperative2D 纬度/经度转换为 NSNumber

ios - 使用特定的外部应用程序从我的 iOS 应用程序打开 pdf 文件

ios - 使多行 UILabel 包裹一个按钮

ios - 自定义 UIView 变量/属性访问

objective-c - 社交操作表(类似于 iOS 6)

c++ - 在XCode 7.0.1中设置VTK 6.1

ios - 我可以为 View 设置动画以从隐藏中淡入吗?

javascript - PhoneGap 2.2.0 支持的 iOS 版本

ios - ViewWithTag 导致 UICollectionView 出现问题