Contents

Develop
2015.01.03 14:45

[ios] UIView 계층구조

Views 1219 Comment 0
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print

UIViewUtility (계층구조)

//
//  UIView+Helper.m
//  UIViewExtension
//
//  Created by KIM SUNG CHEOL on 12. 1. 9..
//  Copyright (c) 2012 individual. All rights reserved.
//

#import "UIViewUtility.h"


@implementation UIViewUtilty
#pragma mark -
#pragma mark 뷰계층구조
/**
 * @brief   레벨을 늘려가며 재귀적으로 뷰 트리를 탐색해 내려간다
 * @param   aView : 탐색을 시작할 뷰
 * @param   atIndent : 뷰 계층의 깊이
 * @param   into : 결과를 받을 스트링
 * @return  none
 * @remark  none
 * @see     displayViews:
 * @author  Sungcheol Kim(skyfe79@gmail.com)
 */
+(void) dumpView:(UIView *)aView 
        atIndent:(int)indent 
            into:(NSMutableString *)outString
{
    for(int i=0; i<indent; i++)
    {
        [outString appendString:@"	"];
    }
    [outString appendFormat:@"[%2d] %@
", indent, [[aView class] description]];
    for(UIView *view in [aView subviews])
        [self dumpView:view atIndent:indent+1 into:outString];
}

/**
 * @brief   레벨 0인 루트 뷰에서붙 트리를 재귀적으로 탐색한다
 * @param   aView : 탐색을 시작할 뷰
 * @return  NSString* : 탐색 결과 뷰의 계층 구조를 담은 문자열
 * @remark  none
 * @see     dumpView:atIndent:into:
 * @author  Sungcheol Kim(skyfe79@gmail.com)
 * @exeample
    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
    [button addSubview:[UIButton buttonWithType:UIButtonTypeCustom]];
    [self.view addSubview:button];
    [self.view addSubview:[UIButton buttonWithType:UIButtonTypeCustom]];
    NSLog(@"
%@",[self.view displayViews:self.view]);
 * @out
    [ 0] UIView
        [ 1] UIButton
            [ 2] UIButton
        [ 1] UIButton
 */
+(NSString *)displayViews:(UIView *)aView
{
    NSMutableString *outString= [[NSMutableString alloc] init];
    [self dumpView:aView atIndent:0 into:outString];
    return [outString autorelease];
}


#pragma mark - 
#pragma mark 뷰탐색
/**
 * @brief   뷰의 하위 뷰에 해당하는 모든 자손을 배열로 반환한다
 * @param   aView : 시작할 뷰
 * @return  NSArray : 모든 자손 뷰 배열
 * @remark  none
 * @see     none
 * @author  Sungcheol Kim(skyfe79@gmail.com)
 */
+(NSArray *)allSubViews:(UIView *)aView
{
    NSArray *result = [aView subviews];
    for(UIView *view in [aView subviews])
    {
        NSArray *subviews = [UIViewUtilty allSubViews:view];
        if(subviews)
        {
            result = [result arrayByAddingObjectsFromArray:subviews];
        }
    }
    return result;
}
/**
 * @brief   애플리케이션의 모든 뷰를 반환한다
 * @param   void
 * @return  애플리케이션의 모든 뷰를 담은 배열
 * @remark  none
 * @see     none
 * @author  Sungcheol Kim(skyfe79@gmail.com)
 */
+(NSArray *)allApplicationViews
{
    NSArray *result = [[UIApplication sharedApplication] windows];
    for(UIWindow *window in [[UIApplication sharedApplication] windows])
    {
        NSArray *subviews = [UIViewUtilty allSubViews:window];
        if(subviews)
        {
            result = [result arrayByAddingObjectsFromArray:subviews];
        }
    }
    return result;
}
/**
 * @brief   UIWindow로부터 해당 뷰까지 부모 뷰의 배열을 반환한다
 * @param   aView : 경로를 얻을 뷰
 * @return  경로를 담은 배열
 * @remark  none
 * @see     none
 * @author  Sungcheol Kim(skyfe79@gmail.com)
 */
+(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;
}
@end


[출처] https://github.com/skyfe79/iOSToolkit/blob/master/UIView/UIViewUtility.m


?

  1. [ios] AES256 알고리즘을 이용해 데이터 암호화/복호화 방법

    Date2015.07.21 CategoryDevelop Byhooni Views4184
    Read More
  2. [ios] @property의 속성 (strong, weak, copy) 사용 경우

    Date2014.08.08 CategoryDevelop Byhooni Views1770
    Read More
  3. [ios] UIView 계층구조

    Date2015.01.03 CategoryDevelop Byhooni Views1219
    Read More
  4. [htm] DOM에 대해 ㅎㅎ

    Date2003.04.23 CategoryEtc Byhooni Views14756
    Read More
  5. [html] 캐쉬된 웹페이지 사용하지 않도록 하는 방법

    Date2003.04.23 CategoryDevelop Byhooni Views13067
    Read More
  6. [html] 메타태그 사용예.. 은지나 바라~

    Date2003.04.23 CategoryDevelop Byhooni Views7250
    Read More
  7. [html] SVG(Scalable Vector Graphics) 간단 정리

    Date2014.02.13 CategoryDevelop Byhooni Views8866
    Read More
  8. [html] HTML5 튜토리얼 링크 ㅋㅋ

    Date2013.04.23 CategoryDevelop Byhooni Views12825
    Read More
  9. [git] 쉬운 버전관리 Git 설명

    Date2015.08.18 CategoryDevelop Byhooni Views955
    Read More
  10. [flash] 페이지 이동 (액션스크립트)

    Date2013.04.23 CategoryEtc Byhooni Views16287
    Read More
  11. [flash] 자동차 엔진의 원리 (4행정 사이클 그림)

    Date2013.04.23 CategoryEtc Byhooni Views21278
    Read More
  12. [flash] 맘에 드는 파이차트

    Date2013.04.23 CategoryEtc Byhooni Views12623
    Read More
Board Pagination Prev 1 ... 55 56 57 58 59 60 61 62 63 64 ... 98 Next
/ 98