[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; }