增加了属性
allowsKeyboardScrolling
表示是否根据连接的物理键盘的方向键而滚动。
- import UIKit
-
- class ViewController: UIViewController {
- lazy var scrollView: UIScrollView = {
- let scrollView = UIScrollView(frame: CGRect(x: 0,
- y: 0,
- width: UIScreen.main.bounds.width,
- height: UIScreen.main.bounds.width))
- let imageView = UIImageView(image: UIImage(named: "img"))
- scrollView.addSubview(imageView)
- scrollView.contentSize = imageView.bounds.size
- // iOS17新增,默认为true
- scrollView.isScrollEnabled = false
- return scrollView
- }()
-
- override func viewDidLoad() {
- super.viewDidLoad()
-
- view.addSubview(scrollView)
- }
- }
2、applicationIconBadgeNumber
UIApplication 的applicationIconBadgeNumber
属性被废弃,建议使用UNUserNotificationCenter.current().setBadgeCount()
方法。
- import UIKit
- import UserNotifications
-
- class ViewController: UIViewController {
- override func viewDidLoad() {
- super.viewDidLoad()
- }
-
- override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
- // iOS17之后设置角标,需要先授权
- // UNUserNotificationCenter.current().setBadgeCount(10)
- UNUserNotificationCenter.current().setBadgeCount(10) { error in
- if let error {
- print(error)
- }
- }
- }
- }
3、UIDocumentViewController
新增视图控制器,用于显示与管理本地或者云端文档。
- import UIKit
-
- class ViewController: UIViewController {
- override func viewDidLoad() {
- super.viewDidLoad()
- }
-
- override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
- let documentViewController = UIDocumentViewController()
- documentViewController.openDocument { _ in
- print("打开文档")
- }
- present(documentViewController, animated: true)
- }
- }
4、UIHoverStyle
UIView 增加了一个hoverStyle
属性,可以设置鼠标移动到 UIView 之上的效果。
- import UIKit
-
- class ViewController: UIViewController {
- lazy var redView: UIView = {
- let view = UIView(frame: CGRect(x: 200, y: 200, width: 200, height: 200))
- view.backgroundColor = .red
- // iOS17新增UIHoverStyle,可以设置Hover的效果与形状(UIShape)
- let hoverStyle = UIHoverStyle(effect: .lift, shape: .capsule)
- // iOS17新增,鼠标移动到UIView之上的效果
- view.hoverStyle = hoverStyle
- return view
- }()
-
- override func viewDidLoad() {
- super.viewDidLoad()
-
- view.addSubview(redView)
- }
- }
5、编译报错cfstring constant not pointer aligned
解决办法:Build Settings -> Other Linker Flags 加入-ld64
6、编译报错Sandbox:rsync.sanba deny(1) file-write-create xxx
- 使用 Xcode15 新建项目后,pod 引入部分第三方会报上面的错误
- 解决办法:Build Settings 搜索 sandbox,把 Build Options 中的 User Script Sandboxing改为 NO
7、编译报错UIGraphicsBeginImageContextWithOptions崩溃
参考链接:UIGraphicsBeginImageContext Deprecated
YYText使用时会崩溃在UIGraphicsBeginImageContextWithOptions