Nil*_*ils 5 objective-c uiview ios objective-c-blocks
迭代一个类的子视图中的所有UIViews然后使用循环中的类型检查isKindOfClass使我的代码看起来多余.所以我编写了以下方法,为每个子视图执行一个块.
@implementation Util
+ (void)iterateOverSubviewsOfType:(Class)viewType
view:(UIView*)view
blockToExecute:(void (^)(id subview))block
{
for (UIView* subview in view.subviews) {
if ([subview isKindOfClass:viewType]) {
block(subview);
}
}
}
@end
Run Code Online (Sandbox Code Playgroud)
传递给此方法的块采用类型的参数id.这里使用的类型当然应该与第一个参数一样.但到目前为止,我还没有找到一种方法来使这种类型更安全.
Kyr*_*off 11
试试这样,应该足够安全.
for (id subview in view.subviews) {
if ([subview isMemberOfClass:viewType]) {
block(subview);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4193 次 |
| 最近记录: |