小编Mat*_*tie的帖子

本地化非根 InfoPlist 值

我正在尝试将本地化添加到 Info.plist 文件中显示的值。我使用文件对顶级密钥执行此操作没有任何问题InfoPlist.strings。但是,我不知道如何让它适用于非顶级值。

例如,CFBundleDocumentTypes是一个字典数组。我需要以CFBundleTypeName不同的方式本地化每个数组的键。对于带有密钥的UTExportedTypeDeclarations/也存在类似的情况。UTImportedTypeDeclarationsUTTypeDescription

Apple 的文档UTTypeDescription特别指出它可以使用 InfoPlist.strings 文件进行本地化。我已经尝试过,但没有成功。

作为参考,我尝试参考苹果自己的应用程序。我能找到的唯一一个使用非 root 键的是 Xcode,而 Xcode 实际上并未本地化为英语以外的任何语言。我无法确定它的方法是否真的有效。而且,Xcode 的包中至少有一些奇怪之处,因为 InfoPlist.strings 文件中出现的键实际上并不在 Info.plist 本身中。

有谁知道如何(或是否)可以做到这一点?

macos xcode localization ios

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

从另一个视图下方滑动一个SwiftUI视图

我正在尝试使用SwiftUI构建动画。

Start: [ A ][ B ][ D ]
End:   [ A ][ B ][    C    ][ D ]
Run Code Online (Sandbox Code Playgroud)

动画的关键元素是:

  • C应该看起来从B下方滑出(不从零宽度扩展)
  • 所有视图的宽度由子视图定义,并且未知
  • 在动画期间或之后,所有子视图的宽度均不应更改(因此,处于结束状态时,总视图宽度较大)

我现在很难用SwiftUI满足所有这些要求,但是过去能够通过自动布局实现类似的效果。

我的第一次尝试是使用HStack带有layoutPriorities 的过渡。这并没有真正接近,因为它会影响动画过程中C的宽度。

我的第二个尝试是保留HStack,但使用带有非对称移动动画的过渡。这确实很接近,但是动画中B和C的移动不会产生C恰好位于B下方的效果。

我最近的尝试是放弃对HStack两个动画视图的依赖,而使用a ZStack代替。通过此设置,我可以结合使用offset和和来使动画完美padding但是,只有将B和C的帧大小设为已知值,我才能正确解决问题。

是否有人对要求B和C的帧大小固定的情况有任何想法?

swift swiftui

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

标签 统计

ios ×1

localization ×1

macos ×1

swift ×1

swiftui ×1

xcode ×1