标签: ios16

Xcode14 启动时崩溃:dyld:未加载库:/usr/lib/swift/libswiftCoreGraphics.dylib

当我将 Xcode 升级到 14 时,我的应用程序崩溃并收到错误消息:\n dyld:未加载库:/usr/lib/swift/libswiftCoreGraphics.dylib

\n

仅发生在 iOS 版本低于 13\xef\xbc\x8c 的设备上,例如 iOS 12/11\xef\xbc\x8c

\n

ios ios16 xcode14

6
推荐指数
1
解决办法
8684
查看次数

TextField(_:text:axis:) 打破了 iOS 16 中 ScrollView 内的键盘回避

TextField如果它是常规的(即不在 上扩展的axis),无论它是否包含在 a 中,自动键盘避免似乎都能正常工作。ScrollView

如果只是将TextField(_:text:axis)其简单地放置在 a 中VStack而不是包装在ScrollView. 随着更多文本的高度扩展,它甚至会继续正确地避开键盘。

TextField(_:text:axis)但如果它被放置在一个内部,我似乎无法避免使用键盘ScrollView

我可以采用一种老套的方法,即当焦点被聚焦时,使用ScrollViewReader与 组合DispatchQueue.main.asyncAfter(deadline: .now() + .milliseconds(400))来包裹。当您第一次聚焦该领域时,这种方法有效,但我似乎无法在扩展时继续调整其位置。proxy.scrollTo()TextFieldScrollViewTextField

这是一个例子:

struct KeyboardAvoidingView: View {
    @State var text = ""
    
    var body: some View {
        ScrollViewReader { proxy in
            ScrollView {
                VStack {
                    Color.red
                        .frame(height: 400)
                    Color.blue
                        .frame(height: 400)
                    TextField("Name", text: $text, axis: .vertical)
                        .padding(.vertical)
                        .onTapGesture {
                            DispatchQueue.main.asyncAfter(deadline: .now() + .milliseconds(400)) { 
                                withAnimation(.default) {
                                    proxy.scrollTo(0)
                                } …
Run Code Online (Sandbox Code Playgroud)

ios swift swiftui ios16

6
推荐指数
1
解决办法
617
查看次数

Swift iOS 16 我无法再从键盘呈现 UIViewController,而不关闭它

在 iOS 16 之前,我可以通过使用以下代码在键盘上呈现 UIViewController 而无需关闭它:

if let window = UIApplication.shared.windows.last, 
    String(describing: type(of: window)).equals("UIRemoteKeyboardWindow") {

    let presentingVC = window.rootViewController

    presentingVC.present(self.myViewController, animated: animated)
}
Run Code Online (Sandbox Code Playgroud)

我尝试在模拟器中运行此代码,在 iPhone 13 上模拟 iOS 16。

不幸的是,在打开键盘的情况下运行此代码(像以前一样),“UIRemoteKeyboardWindow”不再出现在窗口中。

我只找到了“UITextEffectsWindow”,但从那里呈现“myViewController”,它显示在键盘下。

有没有人遇到过这个问题并且知道如何通过键盘启动 UIViewController 而不关闭它?

我需要这段代码主要是因为我有自定义选择器,允许用户输入更新 UI 的值,而无需关闭键盘。

更新:

我在使用 iOS 16 的 iPhone 13 模拟器上从当前稳定的 Xcode 版本 (13.4.1) 构建并运行了该应用程序,现在我可以找到 UIRemoteKeyboardWindow。我曾经从 Xcode 版本 14 beta 启动该应用程序。由于 Xcode beta 版本,找不到 UIRemoteKeyboardWindow 会出现错误吗?

keyboard uiviewcontroller ios swift ios16

5
推荐指数
1
解决办法
2584
查看次数

如何使用 XCode 13.4 为 iOS 16 设备构建应用程序?

我在一家公司工作,该公司在 AppStore 中有一个应用程序。我们需要在发布之前对 iOS 16 进行测试。我无法使用 XCode 13.4 构建 iOS 16 设备应用程序。如果我们使用 Firebase 进行构建并在 iOS 16 中运行该应用程序,但该应用程序卡在启动屏幕上并且没有崩溃。所以我找不到问题所在。

有没有办法在不使用远程数据库的情况下记录我的代码?

xcode swift ios15 xcode13 ios16

5
推荐指数
2
解决办法
3万
查看次数

iOS 16 bug - ViewController 不响应点击

编辑:根据评论者的要求,我们创建了一个小项目,您可以使用它来重现该问题。https://github.com/Coursicle/ReducingiOS16PopUpControllerBug。请注意,当您在 iOS 15 或更低版本上运行此项目时,弹出窗口会响应点击。在 iOS 16 上,它不响应任何点击。

我们有一个视图控制器,允许用户为我们的应用程序中的频道设置通知首选项。视图从屏幕底部向上滑动,并使用半透明背景视图使屏幕的其余部分变暗。在 iOS 15 及更低版本中,它按预期工作:您可以通过点击背景来关闭视图,或者选择一个新选项并点击“应用”。然而,在 iOS 16 中,视图和半透明背景视图对任何点击都没有响应。

最令人惊讶的是,我们有几乎相同的视图控制器(具有半透明背景视图的视图控制器,以弹出窗口的形式呈现UITabBarController等),它们在 iOS 15 和 iOS 16 中都可以正常工作。 iOS 16 中的工作视图和非工作视图之间似乎存在任何显着差异。

我们尝试过的事情:

  • 除了UITabBarController呈现弹出窗口之外还有其他视图控制器。
  • 设置 UIWindow sendEvent 断点,这表明点击击中了正确的元素,例如<UILabel: 0x133db3e10; frame = (78 0; 208 48); text = 'Every Post'; backgroundColor = UIExtendedGrayColorSpace 0 0; layer = <_UILabelLayer: 0x60000233c0a0>
  • 直观地检查视图层次结构,这表明视图和背景位于最顶层,因此应该响应事件。这是图像
  • 为视图和背景视图上的各种元素显式设置isUserInteractionEnabled为。true

它看起来是这样的: 视觉示例

这是创建并显示弹出窗口的代码:

let rootController = UIApplication.shared.windows.first!.rootViewController as! CustomTabBar
let popover = NotificationSettingsPopUpController(customTabBarController: rootController, delegateController: self) …
Run Code Online (Sandbox Code Playgroud)

uiviewcontroller uiview ios swift ios16

5
推荐指数
1
解决办法
1791
查看次数

NavigationStack 与 TabView 结合(SwiftUI、iOS16)

结合上述观点的正确方法是什么?

截至目前,NavigationStack我的应用程序底部有一个。它显示 aLaunchView作为 root。当用户通过身份验证时,主视图将添加到堆栈中,如果没有,登录/注册视图将添加到堆栈中。这很好用。

NavigationStack(path: self.$vm.path) {
        LaunchView()
            .navigationDestination(for: Authentication.self) { value in
                switch value {
                    case .login:
                        LoginView(vm: LoginViewModel() { type, action in
                            ...
                        })
                    case .verify: // let .verify(email)
                        VerifyMailView(vm: VerifyMailViewModel() { type, action in
                            ...
                        })
                    case .authenticated:
                        AuthenticatedView() { type, action in
                            self.vm.set(type: type) { value in
                                ...
                            }
                        }
                }
            }
        
    }
Run Code Online (Sandbox Code Playgroud)

AuthenticatedView由一个具有三个视图的视图组成TabView。问题来了。我以为我可以直接在它们上设置三个视图的标题和工具栏,但事实并非如此。但是,我不想也不能在选项卡视图中设置标题或工具栏,因为它们需要来自视图视图模型的数据(拥有TabView且不应该拥有访问权限)。

TabView(selection: self.$vm.index) {
        DiscoverView(vm: DiscoverViewModel(account: self.vm.$account, type: self.type))
        .tabItem {
            Image(self.vm.index == …
Run Code Online (Sandbox Code Playgroud)

swiftui swiftui-tabview ios16 swiftui-navigationstack

5
推荐指数
1
解决办法
3923
查看次数

列表 SwiftUI iOS 16 内的视频播放器 - 控件未显示

发现了一个奇怪的情况。在新版本的 iOS 中,如果视频播放器放置在列表中,则不会显示视频播放器的控件。

在 iOS 15.6.1 中,这段代码可以正常工作。

struct ContentView: View
{
    var body: some View
    {
        VStack{
            List(0..<2) { i in
                VStack
                {
                   
                    let vp = AVPlayer(url: URL(string: "http://wiu.ks-api.com/Content/file_3004.mp4")!)
                    
                    VideoPlayer(player: vp)
                        .frame(maxWidth: .infinity, idealHeight: 320)
                        .padding(.horizontal, -20)
                        .onDisappear{vp.pause()}
                }
            }
        }
    }
}

Run Code Online (Sandbox Code Playgroud)

谢谢大家

swiftui-list ios16

5
推荐指数
1
解决办法
915
查看次数

在 iOS 16 / Xcode 14 中禁用单元格边框

iOS 16/Xcode 14 在侧边栏中的单元格周围添加了蓝色边框。如何将其删除?

我的单元格是从 UICollectionViewListCell 派生的自定义类。

在此输入图像描述

swift ios16

5
推荐指数
1
解决办法
316
查看次数

iOS 16 NavigationBar 设置大标题并隐藏内联标题

在检查 iOS 16 上的应用程序错误时,我们发现导航栏上的行为发生了变化,即使在非 14 Pro 型号上也是如此。有多个问题,我们想知道如何解决它们。所有问题都没有更改代码。只需在 iOS 16 上运行该应用程序即可。

  1. 在某些视图上,iOS 将标题样式更改为“大”。它曾经是并且应该是内联的。
  2. 在某些视图上,标题会在推送动画期间内联显示,但一旦动画完成,标题样式就会更改为大。这会导致 UI 跳转。在其他视图中,标题完全消失。
  3. 在某些视图中,标题是正确内联的,但是当显示工作表并关闭时,它会导致标题从导航栏中完全消失。

我们使用 UIHostingControllers 来包装所有 SwiftUI 视图。也许这里有一些问题。

swift swiftui uihostingcontroller ios16

5
推荐指数
1
解决办法
1577
查看次数

iOS 16 RemoteIO:输入数据过程返回不一致的 2 个数据包

我在 iOS 16 中收到错误。此错误不会出现在以前的 iOS 版本中。我正在使用 RemoteIO 以 4000 Hz 播放实时音频。错误如下:

输入数据过程返回不一致的2个186字节数据包;每个数据包 2 字节,实际上是 93 个数据包

这是音频格式和回调的设置方式:

// Set the Audio format
AudioStreamBasicDescription audioFormat;        
audioFormat.mSampleRate         = 4000;
audioFormat.mFormatID           = kAudioFormatLinearPCM;
audioFormat.mFormatFlags        = kAudioFormatFlagIsSignedInteger | kAudioFormatFlagIsPacked;
audioFormat.mFramesPerPacket    = 1;
audioFormat.mChannelsPerFrame   = 1;
audioFormat.mBitsPerChannel     = 16;
audioFormat.mBytesPerPacket     = 2;
audioFormat.mBytesPerFrame      = 2;

AURenderCallbackStruct callbackStruct;
// Set output callback
callbackStruct.inputProc = playbackCallback;
callbackStruct.inputProcRefCon = (__bridge void * _Nullable)(self);
status = AudioUnitSetProperty(audioUnit,
                              kAudioUnitProperty_SetRenderCallback,
                              kAudioUnitScope_Global,
                              kOutputBus,
                              &callbackStruct,
                              sizeof(callbackStruct));
Run Code Online (Sandbox Code Playgroud)

请注意,我设置的 mSampleRate 为 4000 Hz。在 iOS 15 …

audiounit ios remoteio ios16

5
推荐指数
0
解决办法
579
查看次数