UIView 를 복사해서 새로운 UIView를 생성할때.
UIView* newView = [oldView copy];
이건 당연히 크래쉬 발생.
UIView* newView = [NSKeyedUnarchiver unarchiveObjectWithData:[NSKeyedArchiver archivedDataWithRootObject:oldView]];
이렇게 하면 복사가 되긴하는데.
oldView가 생성된후 화면의 변경사항이 newView에는 반영이 안된다.
(oldView에서 어떤 버튼을 둥글게 만들었는데, newView에는 버튼이 기본값이 네모모양 이었다)
UIView* newView = [oldView snapshotViewAfterScreenUpdates:YES];
이렇게 하니까 완전히 복사가 되었다.
* 추가
snapshotViewAfterScreenUpdates 이걸 사용하니까, 뷰 안에 있는 버튼의 이벤트가 발생안한다.
제길... 이건 진짜로 이미지로 스냅샷 만드는건가부다.
큰일이네...
반응형
'iOS 초보' 카테고리의 다른 글
NSMutableAttributedString. 8자리 전화번호 링크걸기 (0) | 2019.01.15 |
---|---|
UITextView 에 html 내용 보여주기 (0) | 2018.11.28 |
이미지에 텍스트 추가하기. (0) | 2017.01.19 |
landscape app. UIImagePickerController 사용하기 (0) | 2016.10.26 |
ios. ssl. client certificate. 클라이언트 인증서. pinning (0) | 2016.10.21 |