在我的 SwiftUI 应用程序中,我的资产目录中有一个长宽比为 1:1 的图像。在我的代码中,我有一个Image具有不同纵横比的视图,可以将图像裁剪为新尺寸:
Image("My Image")
.resizable()
.aspectRatio(contentMode: .fill)
.frame(width: 300, height: 250)
.clipped()
Run Code Online (Sandbox Code Playgroud)
但是当我将上下文菜单附加到该图像(使用contextMenu修饰符)时,原始纵横比仍然存在,但具有透明填充:
如何将图像剪裁到上下文菜单内的新框架,以便没有填充?
我正在尝试为我的应用程序设置备用图标iOS 10.3,但每次调用方法Xcode都会返回:
错误域= NSCocoaErrorDomain代码= 3072"操作已取消."
我在这篇文章中使用@KlimczakM的答案来设置图标(下面称为方法),但我使用自己的方法从设置中加载首选图标:specifyIcon
let iconSetting = userDefaults.string(forKey: "appIconSetting")
print("The icon setting is: \(iconSetting ?? "error getting appIconSetting.")")
switch iconSetting! {
case "white":
specifyIcon(nil)
case "dark":
specifyIcon("dark")
case "text":
specifyIcon("text")
case "textdark":
specifyIcon("textdark")
case "rainbow":
specifyIcon("rainbow")
default:
specifyIcon(nil)
print("ERROR setting icon.")
}
func specifyIcon(_ icon: String?) {
//(@KlimczakM's answer)
}
Run Code Online (Sandbox Code Playgroud)
在我的Info.plist我有五个图标; white,dark,rainbow,text,和textdark:
<key>CFBundleIcons</key>
<dict>
<key>CFBundleAlternateIcons</key>
<dict>
<key>white</key>
<dict>
<key>CFBundleIconFiles</key>
<array> …Run Code Online (Sandbox Code Playgroud) 我在Swift Tests源代码中找到了一个有趣的函数:
func test(_ v: A????, _ cast: (A????) -> B?)
Run Code Online (Sandbox Code Playgroud)
由于Type?只是语法糖Optional<Type>,这意味着参数的类型v可以重写为Optional<Optional<Optional<Optional<A>>>>.
我知道这个功能是用来测试可选类型,所以它肯定是过分的论据去v和cast,但什么是实际使用具有"可选的可选等"的 输入Swift(如果有的话)?