用户交互禁用查看但启用子视图(UIButtons)

Wil*_*ter 5 iphone cocoa-touch objective-c interface-builder

我有一个视图,其中包含多个覆盖 UIScrollView 的 UIButton。我想防止用户在叠加视图上进行交互,但不想在该视图中包含的 UIButton 上进行交互。

我将这些视图分组到一个视图中的原因是,我可以通过更改单个属性将 alpha 更改应用于视图中的所有按钮。我刚刚注意到 IOS 4.0 中的 IBOutletCollection,但我还需要针对 IOS 3.0。

有没有比覆盖以下 UIView 方法更简单的方法来实现这一点?

- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event;
Run Code Online (Sandbox Code Playgroud)

Ken*_*and 4

不幸的是,如果您禁用用户与视图的交互,那么用户与所有子视图的交互也会被禁用。虽然并不理想,但您只需要为每个按钮制作 IBOutlet 并相应地调整它们即可。为了避免将来编写大量额外代码,您可以在 viewDidLoad 中创建一个 NSArray 并将每个按钮放入其中。然后,每次您想要更改所有这些按钮上的某个属性时,您只需循环数组并更改它们即可。这样,如果您向该组添加另一个按钮,您只需要更新数组,其余的更改将自动传播。