iOS/Swift

UITableView - iOS 10과 iOS 11에서 UITableViewCell의 superview 주의점!

DevBabamba 2017. 12. 26. 12:08
반응형

UITableViewCell 객체에서 superview에 접근할 경우, iOS 10과 iOS 11 에서 주의할 점이 있다.


iOS 10의 경우에 UITableViewCell객체에서 superview로 접근할 때, UITableViewWrapperView가 superview로 나타난다.


dump(self.superview)



Optional(<UITableViewWrapperView: 0x102002c00; frame = (0 0; 320 504); gestureRecognizers = <NSArray: 0x17405e120>; layer = <CALayer: 0x174026ee0>; contentOffset: {0, 0}; contentSize: {320, 504}>)

  - some: <UITableViewWrapperView: 0x102002c00; frame = (0 0; 320 504); gestureRecognizers = <NSArray: 0x17405e120>; layer = <CALayer: 0x174026ee0>; contentOffset: {0, 0}; contentSize: {320, 504}> #0

    - super: UIScrollView

      - super: UIView

        - super: UIResponder

          - super: NSObject



UITableView로 접근하기 위해서는 한번더 superview를 불러야 UITableView가 불린다.


dump(self.superview?.superview)


Optional(<UITableView: 0x101029c00; frame = (0 0; 320 568); clipsToBounds = YES; gestureRecognizers = <NSArray: 0x174047b30>; layer = <CALayer: 0x174037840>; contentOffset: {0, -64}; contentSize: {320, 1330}>)

  - some: <UITableView: 0x101029c00; frame = (0 0; 320 568); clipsToBounds = YES; gestureRecognizers = <NSArray: 0x174047b30>; layer = <CALayer: 0x174037840>; contentOffset: {0, -64}; contentSize: {320, 1330}> #0

    - super: UIScrollView

      - super: UIView

        - super: UIResponder

          - super: NSObject


iOS 11의 경우 UITableViewCell객체에서 superview로 접근할 때, UITableView가 superview로 나타난다.


dump(self.superview)


Optional(<UITableView: 0x12500fc00; frame = (0 0; 375 812); clipsToBounds = YES; gestureRecognizers = <NSArray: 0x1d4050320>; layer = <CALayer: 0x1d402c7a0>; contentOffset: {0, -88}; contentSize: {375, 1162}; adjustedContentInset: {88, 0, 83, 0}>)

  - some: <UITableView: 0x12500fc00; frame = (0 0; 375 812); clipsToBounds = YES; gestureRecognizers = <NSArray: 0x1d4050320>; layer = <CALayer: 0x1d402c7a0>; contentOffset: {0, -88}; contentSize: {375, 1162}; adjustedContentInset: {88, 0, 83, 0}> #0

    - super: UIScrollView

      - super: UIView

        - super: UIResponder

          - super: NSObject



iOS 11부터는 UITableViewWrapperView가 사라졌다. 

Deployment Target이 10.0이상부터 일때, 이를 주의하여 처리할 필요가 있다.

반응형

'iOS > Swift' 카테고리의 다른 글

Top-Level Code가 무슨의미지??? - Swift  (0) 2022.10.13
[Swift API Guidline] Naming  (0) 2018.05.31
Swift - DEBUG Flag 사용하기!  (0) 2018.02.21
기본 문법 - 데이터 타입 기본  (0) 2017.12.29
Data - 마이너스 값 넣기!  (0) 2017.12.21