修改`IBOutletCollection`的框架

我在应用中创了带Button的IBOutletCollect:

@property (retain, nonatomic) IBOutletCollection(UIButton) NSArray *allButtons;

现在需要改一下这些按钮的位置和框架:

[_allButtons makeObjectsPerformSelector:@selector(setFrame:) withObject: ????? ];

怎么设置值?我用的方法编译器报错:

  [_allButtons makeObjectsPerformSelector:@selector(setFrame:) withObject:CGRectMake(10, 0, 0, 10)];

CGRect不是对象,所以不能直接添加,把它放到NSValue中:

[NSValue valueWithCGRect:]

看一下NSValue的说明

如果数组中用了block:

[allButtons enumerateObjectsUsingBlock:^(UIButton *button, NSUInteger idx, BOOL *stop){
    button.frame = newFrame;
};];