我正在寻找一种方法来重现 iOS 16 上的锁屏小部件上出现的“充满活力”的 iOS 16 效果,因为我的应用程序应该能够在用户创建过程中显示小部件的预览。
示例:请参阅下面中央屏幕上的 4 个圆形小部件。
以下是 Apple 文档中关于此效果的说明:
充满活力:对于锁定屏幕小部件,iOS 将文本、图像和仪表去饱和为单色,并通过为锁定屏幕背景适当地着色内容来创建充满活力的效果。人们还可以将锁定屏幕着色为彩色色调。 来自苹果文档
我不知道如何重现这种效果。尝试了该代码但不满意:
MyOriginalView()
.compositingGroup()
.saturation(0.0)
.blendMode(.plusLighter) // or .blendMode(.hardLight)
Run Code Online (Sandbox Code Playgroud)
以下是我想重现的对 iOS 16 充满活力的效果的更准确解释。
使用源视图和参数颜色,将源视图转换为灰度。白色像素似乎是使用参数颜色渲染的,而黑色像素则使用基于参数颜色的模糊透明深色。
请参阅下面的视图转换示例。
以下是一些用于创建测试图像并从此视图渲染 iOS 16 小部件的代码。这正是我想在我的应用程序中模仿的效果。
SwiftUI 4.0 代码(iOS16+):(我认为您需要为代码添加一个 Widget Target 来编译)
import SwiftUI
import WidgetKit
struct SourceView: View {
var body: some View {
VStack (spacing: 0) {
Color.black
HStack (spacing: 0) {
Color.black
Color.black.opacity(0.75)
Color.black.opacity(0.5)
Color.black.opacity(0.25)
Color.black.opacity(0.0)
}
HStack (spacing: 0) {
Color.red
Color.blue
Color.green
Color.yellow
Color.white
}
HStack (spacing: …Run Code Online (Sandbox Code Playgroud) 最近安装 iOS 16 beta 5 后,我们遇到了一个问题try AVAudioSession.sharedInstance().setCategory(<category>, options: .mixWithOthers),出现错误并失去连接。
这是错误:
AVAudioSession_iOS.mm:2365 Failed to set category, error: 'what'
没有关于此错误的其他信息。任何帮助将不胜感激。
仅供参考:这仅在 iOS Beta 5 中才开始出现,之前在 iOS Beta 4 中也曾出现过。
以下代码在 iOS 16.0 的 Xcode-14.0.0-Beta 5 上运行时打破了布局约束
struct ContentView: View {
@State var date = Date()
var body: some View {
DatePicker(selection: $date, displayedComponents: .date, label: { EmptyView() })
.datePickerStyle(.graphical)
}
}
Run Code Online (Sandbox Code Playgroud)
有什么建议如何修复或隐藏警告吗?
控制台警告:
2022-08-24 17:16:40.471325+0300 DatePickerProblem[77364:483284] [LayoutConstraints] 无法同时满足约束。可能至少以下列表中的约束之一是您不想要的。尝试这样做:(1)查看每个约束并尝试找出您不期望的约束;(2) 找到添加了不需要的约束的代码并修复它。(注意:如果您看到不理解的 NSAutoresizingMaskLayoutConstraints,请参阅 UIView 属性的文档translatesAutoresizingMaskIntoConstraints) ( "<NSAutoresizingMaskLayoutConstraint:0x600003559180 h=--& v=--& _UIDatePickerCalendarTimeView:0x7fe15c322520.height == 0 (活动)>", "<NSLayoutConstraint:0x60000352bca0 _UIDatePickerCompactTimeLabel:0x7fe15c322bc0.centerY == _UIDatePickerCalendarTimeView:0x7fe15c322520.centerY - 1 (活动)>", "<NSLayoutConstraint:0x60000352bcf0 V:|-(> =0)-[_UIDatePickerCompactTimeLabel:0x7fe15c322bc0 ] (active, names: '|':_UIDatePickerCalendarTimeView:0x7fe15c322520 )>" ) 将尝试通过破坏约束来恢复 <NSLayoutConstraint:0x60000352bca0 _UIDatePickerCompactTimeLabel:0x7fe15c322bc0.centerY == _UIDatePickerCalendarTimeView:0x7fe15c322 520.centerY - 1(活动)> 制作符号断点在 UIViewAlertForUnsatisfiableConstraints 中在调试器中捕获此内容。<UIKitCore/UIView.h> 中列出的 UIView …
我们使用 Firebase 的 Crashlytics,在过去 2 天里,我们发现 iOS 16 设备上的navigationController?.setNavigationBarHidden崩溃次数激增。安装 Xcode 14.5 后我能够重现崩溃
我有一个嵌入在导航控制器中的视图控制器(VC1),其中包含以下代码
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
...
navigationController?.setNavigationBarHidden(false, animated: animated) // crash here
}
Run Code Online (Sandbox Code Playgroud)
在我使用以下代码推送另一个视图控制器(VC2)之后
navigationController?.pushViewController(vc, animated: true)
Run Code Online (Sandbox Code Playgroud)
应用程序崩溃并显示以下错误消息
2022-08-10 15:07:04.866752-0700 autolist-dev [22341:3295980] *** 由于未捕获的异常'NSGenericException'而终止应用程序,原因:'无法激活带有锚点的约束<NSLayoutXAxisAnchor:0x600001a9d740“_UITAMICAdaptorView:0x7fd6c70 DDBE0 .leading"> 和 <NSLayoutXAxisAnchor:0x600001466680 "_UINavigationBarTitleControl:0x7fd6c70dcb80.leading"> 因为它们没有共同的祖先。约束或其锚点是否引用不同视图层次结构中的项目?这是非法的。
第一次推送 VC2 时,它不会立即崩溃。当我返回 VC1 然后再次推送 VC2 后,应用程序崩溃了。
有谁对如何解决这个问题有任何想法?我似乎找不到其他人有类似的问题
我想要一个带有 SwiftUI 的底部工具栏。以下内容适用于 iOS 15,但不适用于 iOS 16。在 iOS 16 中,工具栏未显示。(如果我改变位置就可以了......)
Text("Content")
.toolbar {
ToolbarItemGroup(placement: .bottomBar) {
Button("Greeting") {
print("Hello world!")
}
}
}
Run Code Online (Sandbox Code Playgroud)
您对此有什么解决方法吗?
谢谢!
在我的 SwiftUI 应用程序中,我有一个带有嵌套 ScrollView 的列表,因为我已将 iPhone 更新到 iOS 16,所以主列表上的刷新有一个奇怪的行为。似乎每个ScrollView都有自己的刷新。问题是我在主列表上应用了 .refreshable 修饰符,而不是在嵌套列表上。
在 iOS 16 之前,这个问题并不存在。那么,这是一个错误还是我们可以通过某种方式修复它?
这是代码和短视频:
List {
VStack(alignment: .leading) {
Text("Line 1")
.font(.title)
ScrollView(.horizontal, showsIndicators: false) {
LazyHStack(spacing: 20) {
Text("Item 1")
Text("Item 2")
Text("Item 3")
Text("Item 4")
Text("Item 5")
Text("Item 6")
Text("Item 7")
Text("Item 8")
Text("Item 9")
Text("Item 10")
}
.frame(height: 180)
}
}
.listRowSeparator(.hidden)
VStack(alignment: .leading) {
Text("Line 2")
.font(.title)
ScrollView(.horizontal, showsIndicators: false) {
LazyHStack(spacing: 20) {
Text("Item 1")
Text("Item 2")
Text("Item 3")
Text("Item 4")
Text("Item 5") …Run Code Online (Sandbox Code Playgroud) 还有其他人在 iOS 16.1 中遇到这个问题吗?NavigationSplitView在NavigationTitle视图加载后加载?\xe2\x80\x93 在 iOS 16.0 上运行良好。(https://i.stack.imgur.com/G0IUG.gif)
它实际上是相同的代码,但它只在 iOS 16.1 上给我带来了问题。
\n更新:这在 iOS 16.2 和 16.3 上仍然是一个问题。
\n@Hunter更新:Apple 似乎已在 iOS 16.4 Beta 1 上修复了此问题。
\nswiftui ios16 swiftui-navigationsplitview navigationsplitview
将二进制文件上传到 后App Store Connect,我收到了 Apple 发来的这封电子邮件:
ITMS-90338:非公共 API 使用 - 应用程序引用 [项目名称] 中的非公共选择器:callWithArguments:、estimatedProgress、frameInfo、getVersion、initWithFrame:configuration:、isMainFrame、navigationDelegate、navigationType、setNavigationDelegate:、setProcessPool:、 targetFrame、toDouble、toString、userContentController。如果源代码中的方法名称与上面列出的私有 Apple API 匹配,则更改方法名称将有助于防止此应用程序在将来的提交中被标记。此外,请注意,上述一个或多个 API 可能位于您的应用程序附带的静态库中。如果是这样,则必须将其删除。有关更多信息,请访问技术支持信息:http://developer.apple.com/support/technical/
但是,除了内部版本号从 增加到 之外1.2,1.2.1这与之前上传的(并且是实时的)完全相同的二进制文件。
我已经检查了 StackOverflow 上的其他问题,例如this和this,但通常涉及第三方 SDK。
我完全感到困惑,因为我在项目的任何地方根本不使用这些方法名称......
这是刚刚发布的 iOS 16 的问题吗?谢谢。
即使代码更改不直接触及意图,从新框架中提取应用程序意图也AppIntents需要花费大量时间。
在构建日志中,发生此步骤的原因有所不同,但主要是“文件 X 已更改”,我想知道是否可以以某种方式缓存该意图或至少仅在生产构建中提取此元数据?Simple#if debug不会阻止执行此步骤。
我正在使用 PDFKit 渲染 PDF,并使用“UIMenuController”添加了自定义菜单。但现在从 iOS 16 开始已弃用。
\n我使用以下代码删除 share\xe3\x80\x81lookup 菜单项:
\n@available(iOS 13.0, *)\nopen override func buildMenu(with builder: UIMenuBuilder) {\n builder.remove(menu: .lookup)\n builder.remove(menu: .share)\n builder.remove(menu: .replace)\n super.buildMenu(with: builder)\n}\nRun Code Online (Sandbox Code Playgroud)\n但是,当用户长按选择 PDF 中的文本时,无法删除“突出显示”上下文菜单。有没有办法摆脱这个菜单项?以及如何在 PDFView 中使用 UIEditMenuInteraction ?
\n任何帮助将非常感激。
\nios16 ×10
swift ×7
ios ×5
swiftui ×5
xcode ×2
appintents ×1
crashlytics ×1
datepicker ×1
effect ×1
ios-pdfkit ×1
ios15 ×1
iphone ×1
swiftui-navigationsplitview ×1
widget ×1
xcode14 ×1
xcodebuild ×1