Kil*_*ley 2 xcode animation objective-c nsdictionary ios
好的,所以我真的不知道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;
}
];
Run Code Online (Sandbox Code Playgroud)
我把上面的内容作为我要问的一个例子.有没有办法将所有按钮放在NSDictionary中并写一行(按钮当前所在的位置)改变所有的alpha?
现在,您在Interface Builder中添加的按钮的首选机制是IBOutletCollection:
@property (strong, nonatomic) IBOutletCollection(UIButton) NSArray *buttons;
Run Code Online (Sandbox Code Playgroud)
显然,在Interface Builder中,您可以将各个按钮连接到插座集合.有关讨论IBOutletCollection,请参阅NSHipster的 IBAction/IBOutlet/IBOutlet Collection文章.
如果您没有使用Interface Builder,而是以编程方式创建了这些按钮,那么您可以拥有NSArray:
@property (strong, nonatomic) NSArray *buttons;
Run Code Online (Sandbox Code Playgroud)
然后你自己填充:
self.buttons = @[self.button1, self.button2, self.button3, self.button4, self.button5, self.button6];
Run Code Online (Sandbox Code Playgroud)
无论您如何构建此数组(插座集合或手动填充),您都可以在更新按钮的属性时迭代该数组:
for (UIButton *button in self.buttons) {
button.alpha = 1;
}
Run Code Online (Sandbox Code Playgroud)
或者,甚至更简单,您可以使用以下命令更新所有这些setValue:forKey::
[self.buttons setValue:@1 forKey:@"alpha"];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
124 次 |
| 最近记录: |