iOS子视图中找到特定类型的视图
2015-10-23 15:05
489 查看
第一篇博文,就分享下自己前几天刚写的一个方法。这个方法可以很方便的将子视图中找到特定类型的视图。例如在ios中searchBar中找到UITextField,然后才可以进行对textField的自定义。这个方法是用递归来实现。欢迎大家交流。
- (UIView *)searchSubviewForClass:(Class)mclass{
__block UIView * reslutview ;
NSArray * subviews = self.subviews;
if (self.subviews.count<=0)
{
return nil;
}
[subviews enumerateObjectsUsingBlock:^(UIView *
subView, NSUInteger idx, BOOL * _Nonnull stop)
{
if ([subView isKindOfClass:mclass])
{
reslutview = subView;
*stop = YES;
}
}];
if (!reslutview) {
[subviews enumerateObjectsUsingBlock:^(UIView *
subView, NSUInteger idx, BOOL * _Nonnull stop)
{
reslutview = [subView searchSubviewForClass:mclass];
if (reslutview) {
*stop = YES;
}
}];
}
return reslutview;
}
- (UIView *)searchSubviewForClass:(Class)mclass{
__block UIView * reslutview ;
NSArray * subviews = self.subviews;
if (self.subviews.count<=0)
{
return nil;
}
[subviews enumerateObjectsUsingBlock:^(UIView *
subView, NSUInteger idx, BOOL * _Nonnull stop)
{
if ([subView isKindOfClass:mclass])
{
reslutview = subView;
*stop = YES;
}
}];
if (!reslutview) {
[subviews enumerateObjectsUsingBlock:^(UIView *
subView, NSUInteger idx, BOOL * _Nonnull stop)
{
reslutview = [subView searchSubviewForClass:mclass];
if (reslutview) {
*stop = YES;
}
}];
}
return reslutview;
}
相关文章推荐
- Android Native 绘图方法
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- C#中struct和class的区别详解
- 有关数据库SQL递归查询在不同数据库中的实现方法
- C#中的递归APS和CPS模式详解
- WinForm实现按名称递归查找控件的方法
- VBS ArrayList Class vbs中的数组类
- 大家看了就明白了css样式中类class与标识id选择符的区别小结
- C#中的尾递归与Continuation详解
- C#递归实现显示文件夹及所有文件并计算其大小的方法
- php递归创建目录的方法
- 深入了解PHP类Class的概念
- setAttribute 与 class冲突解决
- Javascript递归打印Document层次关系实例分析