티스토리 뷰
1. iOS 10 Widget 에서의 Height
iOS 8, 9 와는 다르게 10 에서는 위젯의 height 가 고정이 되어버렸다.
즉,
self.preferredContentSize = CGSizeMake(0, 200);
와 같은 코드가 실제로 동작하지 않게되며
위젯의 height 를 임의로 수정할 수 없게 되었다.
대신 Expand 모드를 만들어 NCWidgetProviding Delegate 에서 Content Size 를 수정할 수 있도록 열어놓았다.
사용법은 아래와 같다.
self.extensionContext.widgetLargestAvailableDisplayMode = NCWidgetDisplayModeExpanded; |
- (void)widgetActiveDisplayModeDidChange:(NCWidgetDisplayMode)activeDisplayMode withMaximumSize:(CGSize)maxSize { if (activeDisplayMode == NCWidgetDisplayModeExpanded) { self.preferredContentSize = CGSizeMake(0.0, 200.0); } else if (activeDisplayMode == NCWidgetDisplayModeCompact) { self.preferredContentSize = maxSize; } } |
참고)
http://stackoverflow.com/questions/38129047/what-is-the-height-of-the-new-ios-10-today-widget-extension
2. 유동글자 변경에 따른 Widget Max Height
"설정 > 디스플레이 및 밝기 > 텍스트 크기" 에서는 iPhone 에서 표시되는 글씨 크기를 수정할 수 있다.
이에 따라 위젯의 기본 Height 값이 달라지는데 그 결과는 아래와 같다.
UIContentSizeCategoryExtraSmall : 95 UIContentSizeCategorySmall : 100 UIContentSizeCategoryMedium : 105 UIContentSizeCategoryLarge ( default ) : 110 UIContentSizeCategoryExtraLarge : 120 UIContentSizeCategoryExtraExtraLarge : 130 UIContentSizeCategoryExtraExtraExtraLarge : 140 |
iOS 10 이상 버전에서는 Expand Mode 가 아닌 이상
위젯 Height 를 임의로 수정할 수 없으므로
위젯 Max Height 의 최소 사이즈일 때의 95 를 기준으로 작업 후 View 들을 가운데 정렬하는 것이 좋아보인다.
3. Widget Max Height 를 알아내는 방법
NCWidgetProviding 에 Max Height 를 명시적으로 주는 framework Method 도 존재한다.
- (CGSize)widgetMaximumSizeForDisplayMode:(NCWidgetDisplayMode)displayMode NS_AVAILABLE_IOS(10_0) |
위 메소드는 NCWidgetDisplayMode 에 따른 CGSize 를 반환해준다.
만약, 내가 ExpandMode 로 preferredContentSize 를 지정해주었다면 해당 ContentSize 가 maxSize 값으로 나오게 된다.
'iOS 개발 > iOS' 카테고리의 다른 글
[iOS] UIDocumentInteractionController, UIActivityViewController 의 사용 (0) | 2016.11.15 |
---|---|
[MAC] SourceTree 에서 remote Commit ment 가 안보일 때 (1) | 2016.11.14 |
[iOS10] CallKit (Call Blocking & Identification) 의 문제점들 및 해결 방법 (0) | 2016.09.20 |
[iOS] UITableView reloadData 에서의 Crash 및 Cell 삭제 (0) | 2016.09.20 |
[iOS] Objective C 의 Block 에 관하여 (0) | 2016.09.19 |
- Total
- Today
- Yesterday
- docker
- set
- NSManagedObjectContext
- Swift 3.0
- thread
- EffectiveObjectiveC
- NSManagedObject
- coredata
- NSManagedObjectModel
- dictionary
- CIImage
- RunLoop
- Swift 3
- CGImage
- HTTP
- workerThread
- Swift
- applicationWillResignActive
- optional
- delegate
- string
- Block
- Swift3
- 꺼내먹어요
- ios
- Swfit
- 읽기 좋은 코드가 좋은 코드다
- UIView
- AWS
- Arc
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |