WWDC 2021: What's New in UIKit 참고
Productivity
iPad multitasking
UIWindowScene.ActivationConfiguration(userActivity: userActivity)
에서 "새 창에서 열기"명령을 작성할 수 있습니다.
let newSceneAction = UIWindowScene.ActivationAction({ _ in
// Create the user activity that represents the new scene content
let userActivity = NSUserActivity(activityType: "com.myapp.detailscene")
// Return the activation configuration
return UIWindowScene.ActivationConfiguration(userActivity: userActivity)
})
Keyboard navigation
iPadOS 15
let newSceneAction = UIWindowScene.ActivationAction({ _ in
// Create the user activity that represents the new scene content
let userActivity = NSUserActivity(activityType: "com.myapp.detailscene")
// Return the activation configuration
return UIWindowScene.ActivationConfiguration(userActivity: userActivity)
})
Keyboard shortcuts
iPadOS 15
UIMenuBuilder를 사용하여 키보드 단축키를 만듭니다.
class AppDelegate: UIResponder, UIApplicationDelegate {
override func buildMenu(with builder: UIMenuBuilder) {
// Use the builder to modify the main menu...
}
}
iPad pointer
UI refinements
Bar 배경 변경
UIToolbar와 UITabbar에서 아래로 스크롤하면 배경이 없어집니다.
아래로 스크롤했을 때의 외관은, scrollEdgeAppearance로 커스터마이즈 할 수 있다.
// Custom scrollEdgeAppearance
let appearance = UITabBarAppearance()
appearance.backgroundEffect = nil
appearance.backgroundColor = .blue
tabBar.scrollEdgeAppearance = appearance
// Specify the content scrollView
let scrollView = ... // Content scroll view in your app
viewController.setContentScrollView(scrollView, for: .bottom)
헤더 변경
UIListContentConfiguration : iOS 14
UIListSeparatorConfiguration : iOS 14.5
절반 높이 시트
API enhancements
10:16
UIButton 확장
// Custom scrollEdgeAppearance
let appearance = UITabBarAppearance()
appearance.backgroundEffect = nil
appearance.backgroundColor = .blue
tabBar.scrollEdgeAppearance = appearance
// Specify the content scrollView
let scrollView = ... // Content scroll view in your app
viewController.setContentScrollView(scrollView, for: .bottom)
10:16
UIButton 확장
UIButtonConfiguration
로 외관을 변경할 수 있다.// Configurationを使ってボタン作成
var config = UIButton.Configuration.tinted()
config.title = "Add to Cart"
config.image = UIImage(systemName: "cart.badge.plus")
config.imagePlacement = .trailing
config.buttonSize = .large
config.cornerStyle = .capsule
let button = UIButton(configuration: config)
UIContextMenuInteraction
에서 접을 수 있는 하위 메뉴를 지원합니다. API의 추가는 없지만, 이전에는, 서브 메뉴를 탭하면(자) 대체되고 있었던 것이, 전개되게 되었다. SF 기호
let configuration = UIImage.SymbolConfiguration(
hierarchicalColor: UIColor.systemOrange
)
let image = UIImage(
systemName: "sun.max.circle.fill",
withConfiguration: configuration
)
동적 유형의 크기 제한
최소한의 사이즈, 최대 사이즈의 설정이 가능하다.
extension UIView {
var minimumContentSizeCategory: UIContentSizeCategory
var maximumContentSizeCategory: UIContentSizeCategory
}
칼라
UIColor.tintColor 추가. 동적 색상.
TextKit2
UIScene 상태 복원
Cell configuration closures
// New UICollectionViewCell.configurationUpdateHandler closures
let cell: UICollectionViewCell = ...
cell.configurationUpdateHandler = { cell, state in
var content = UIListContentConfiguration.cell().updated(for: state)
content.text = "Hello world!"
if state.isDisabled {
content.textProperties.color = .systemGray
}
cell.contentConfiguration = content
}
데이터 소스 차이의 개선
var snapshot = dataSource.snapshot()
snapshot.reconfigureItems(itemIdentifiers)
dataSource.apply(snapshot, animatingDifferences: false)
성능
20:17
셀 프리페치 개선
Security and privacy
Location Button
붙여 넣을 때 팝업
Private Click Measurement
Reference
이 문제에 관하여(WWDC 2021: What's New in UIKit 참고), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/aqubi/items/30b839abc81c9d2ca8b5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)