天天看點

IOS開發之UIView總結1

 太長了,請看 http://blog.csdn.net/xdrt81y/article/details/9128695

performSelector:  

performSelector:withObject:  

performSelector:withObject:withObject:  

 實際調用

[self performSelector:@selector(displayViews) withObject:nil afterDelay:1.0f];  

有三個方法分别是

//父視圖   

[self.view superview]  

//所有子視圖  

 [self.view subviews]  

//自身的window  

 self.view.window  

循環一個視圖下面所有視圖的方法

NSArray *allSubviews(UIView *aView)  

{  

    NSArray *results = [aView subviews];  

    for (UIView *eachView in [aView subviews])  

    {  

        NSArray *riz = allSubviews(eachView);  

        if (riz) {  

            results = [results arrayByAddingObjectsFromArray:riz];  

        }  

    }  

    return results;  

}  

循環傳回一個APPLICATION裡面所有的VIEW

// Return all views throughout the application  

NSArray *allApplicationViews()  

    NSArray *results = [[UIApplication sharedApplication] windows];  

    for (UIWindow *window in [[UIApplication sharedApplication] windows])  

        NSArray *riz = allSubviews(window);  

        if (riz) results = [results arrayByAddingObjectsFromArray: riz];  

 找出所有的父視圖

// Return an array of parent views from the window down to the view  

NSArray *pathToView(UIView *aView)  

    NSMutableArray *array = [NSMutableArray arrayWithObject:aView];  

    UIView *view = aView;  

    UIWindow *window = aView.window;  

    while (view != window)  

        view = [view superview];  

        [array insertObject:view atIndex:0];  

    return array;