[iOS]寻找superView

从iOS4.5开始,我步入苹果开发,随着iOS6 /7的发布,苹果自身的UI模型做了很多修改。比如UITableView,假设tableView上有一个btn,怎么获得对应的Cell,对应TableView,开始我的做法是判断系统版本,今天发现这种处理方法很笨,假设iOS8发布,我是不是又得修改我积累的UI辅助类呢?答案是NO,所以做了一个基础的while循环,一切问题都解决,我想iOS10出来这个方法也不需要修改吧。只是抛砖引玉,过段时间,将积累下来的东西放到Git上http://www.github.com/poholo/,期待大家批评指正,一起参与写一个轻量级的iOSUI框架

/**
 *@tableviewFromCell
 *@time:2014-05-04
 */
+(UITableView*)tableviewFromCell:(UITableViewCell*)cell{
    UIView *view = [cell superview];
    int i = 0;
    while (![view isKindOfClass:[UITableView class]]) {
        if(i==10){
            return nil;
        }
        view = [view superview];
        i++;
    }
    return (UITableView*)view;
}


/**
 *@method:cellFromSubView:(UIView*)view;
 *@time:2014-05-04
 **/
+(UITableViewCell*)cellFromSubView:(UIView*)view{
    UIView *vw = [view superview];
    int i = 0;
    while (![vw isKindOfClass:[UITableViewCell class]]) {
        if(i==10){
            return nil;
        }
        vw = [vw superview];
        i++;
    }
    
    return (UITableViewCell*)vw;
}

 

posted @ 2014-05-04 15:50  *^*  阅读(437)  评论(0编辑  收藏  举报