IOS开发中遇到的问题总结【持续更新】
发布时间
阅读量:
阅读量
目录
知识点补给站
1. 设置App的图标
2. SwiftUI中的Image控件使用系统图标
3、修改app名称
编辑
4、swift ui中软键盘弹出时将底部视图往上顶的问题
5、swift ui中软键盘的关闭问题
知识点补给站
Swift学习
Swift学习
1. 设置App的图标
随后准备好一张分辨率设置为1024×1024像素的图标文件,并将该图标文件导入到指定的位置


打开压缩包后, 定位到AppIcon.appiconset文件夹, 替换项目当中的AppIcon就能完成安装。
2. SwiftUI中的Image控件使用系统图标
第一步是要了解系统中图标的名字;为了获取这些名称的信息,在App Store上下载Symbols Explorer应用程序会有所帮助。


下载打开之后点开其中一个图标即可copy图标名称

接着直接在代码中使用即可:
Image(systemName: "square.and.arrow.up.fill")
3、修改app名称

如果没有找到这个选项,需要手动添加下,如图:

4、swift ui中软键盘弹出时将底部视图往上顶的问题
在你的布局中加入一下代码即可。
.ignoresSafeArea(.keyboard, edges: .bottom)
当您混合使用SwiftUI与UIKit时,请确保将其放置于自定义视图的位置上。例如,在Xcode开发环境中,默认配置中通常会包含HomeTabBarView这一组件。

5、swift ui中软键盘的关闭问题
新建AnyGestureRecognizer.swift
class AnyGestureRecognizer: UIGestureRecognizer {
// 当用户开始触摸屏幕时调用
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent) {
// 如果触摸的视图是UIControl控件(比如按钮等)
if let touchedView = touches.first?.view, touchedView is UIControl {
// 取消这个手势,因为我们不希望打断控件的正常操作
state = .cancelled
// 如果触摸的视图是可编辑的UITextView(比如文本输入框)
} else if let touchedView = touches.first?.view as? UITextView, touchedView.isEditable {
// 同样取消这个手势,不想干扰文本输入
state = .cancelled
// 如果以上情况都不是,那就开始手势识别
} else {
state = .began
}
}
// 当触摸结束时调用
override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) {
// 标记手势为结束状态
state = .ended
}
// 当触摸被取消(比如来电或者中断)时调用
override func touchesCancelled(_ touches: Set<UITouch>, with event: UIEvent) {
// 取消这个手势
state = .cancelled
}
}
在SceneDelegate.swift 中添加以下代码
1、SceneDelegate实现UIGestureRecognizerDelegate
2、重写gestureRecognizer
func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool {
// 返回 true 表示允许多个手势同时识别
return true
}
3、在scene方法中添加以下代码
// 创建一个自定义手势识别器,设置成:当用户在 window 上点击时,调用结束编辑的方法(相当于关闭键盘)
let tapGesture = AnyGestureRecognizer(target: window, action: #selector(UIView.endEditing))
// 设置手势识别器不需要独占触摸,也就是说,用户在触摸屏幕时,手势识别器不会阻止其他手势(可以同时触发多个手势)
tapGesture.requiresExclusiveTouchType = false
// 设置手势识别器不取消其他触摸事件,也就是说,手势被识别时,触摸还能继续传递给其他界面上的控件(不影响按钮点击等操作)
tapGesture.cancelsTouchesInView = false
// 把当前类设置为手势的代理,方便后面管理手势行为
tapGesture.delegate = self
// 把这个手势识别器添加到 window 上,也就是让它开始监听手势事件
window?.addGestureRecognizer(tapGesture)
当用户在macOS上使用Touch ID时,默认情况下显示的触控板区域会包含键盘输入。一些用户可能会出于隐私保护或个人偏好需求,在特定场景下选择隐藏键盘。具体实现的方法主要有两种途径:第一种方式是在系统偏好设置中关闭触控板通知功能,并将触摸板图标从主菜单中移除;第二种方式则是在Xcode项目配置中关闭触控板相关选项。
全部评论 (0)
还没有任何评论哟~
