如何从Apple的新Swift中获取ASCII代码中的角色?
例如65返回"A"
我想使用SF的等宽数字字体在文本字段中显示整数,方法是更改其字体,如下所示:
textField.font = UIFont.monospacedDigitSystemFontOfSize(textField.font!.pointSize, weight: UIFontWeightSemibold)
但是,如果我将文本字段的文本设置为60Hz频率,则结果如下:
对于相同数量的数字,文本的宽度显然不是恒定的,因此它移动所有的抖动,因为文本字段被约束为下面的图像的"前导"和"尾随". 为什么会这样,以及如何解决它?
另一个真正的等宽字体,如"Menlo",表现正常:
我在Apple Watch应用程序的故事板上启用了本地化:
我在故事板上添加了一个标签,并通过.string-files对其文本进行了本地化.界面预览正确显示相应的字符串:
但是,当在模拟器或真实设备上测试应用程序时,无论我选择"德语"作为方案中的应用程序语言还是"系统语言"(设备的系统语言为德语),手表应用程序始终显示英语字符串.
另一方面,iOS应用程序表现正常.
为什么会这样?这种本地化方法在watchOS上是不是完全支持了吗?我是否必须使用NSLocalizedString()通过代码手动设置标签文本?
我正在使用Xcode 9.3和watchOS 4.3.
我正在使用以下函数来"改变"a的饱和度,亮度和alpha值UIColor
:
//UIColor *color = [self color:[UIColor redColor] saturation:0.5 brightness:0.5 alpha:0.5];
- (UIColor *)color:(UIColor *)color saturation:(CGFloat)saturation brightness:(CGFloat)brightness alpha:(CGFloat)alpha {
CGFloat h, s, b, a;
[color getHue:&h saturation:&s brightness:&b alpha:&a];
return [UIColor colorWithHue:h saturation:(s * saturation) brightness:(b * brightness) alpha:(a * alpha)];
}
Run Code Online (Sandbox Code Playgroud)
在iOS 11(GM)之前,这个工作非常好.但是,现在[UIColor getHue:saturation:brightness:alpha:]
返回NO
并且hsba值不会更改.
评论UIColor.h
说:
如果接收器具有兼容的颜色空间,则填充任何非NULL参数并返回"YES".否则,参数保持不变并返回"NO".
"兼容色彩空间"在这里意味着什么?我必须转换色彩空间吗?我该如何做到这一点?我的.xcassets中的所有颜色都是sRGB.
编辑:一种修复方法是使用以下方式获取HSBA值:
CGFloat rTemp, gTemp, bTemp, aTemp;
[color getRed:&rTemp green:&gTemp blue:&bTemp alpha:&aTemp];
CGFloat h, s, b, a;
[[UIColor colorWithRed:rTemp green:gTemp blue:bTemp alpha:aTemp] getHue:&h saturation:&s brightness:&b …
Run Code Online (Sandbox Code Playgroud) 我刚刚为iOS应用程序编写了Apple Watch配套应用程序,并希望通过Xcode将新版本上传到iTunes Connect,但是我收到以下警告:
watchOS应用程序需要1024x1024 app store图标
这也是我上传到iTunes Connect失败的原因.
但是,手表应用程序的"AppIcon"资产中的所有必需大小都已填充,并且没有iOS应用程序图标资产中的"App Store"大小:
那么我应该在哪里添加1024x1024应用程序商店图标?
我正在 swift 中编写一个 macOS 命令行工具,它执行 shell 命令:
let process = Process()
process.launchPath = "/bin/sleep"
process.arguments = ["100"]
process.launch()
process.waitUntilExit()
Run Code Online (Sandbox Code Playgroud)
但是,如果中断 ( CTRL-C
) 或终止信号被发送到我的程序,这些 shell 命令不会被终止,而是继续执行。
如果我的程序意外终止,有没有办法自动终止它们?
在WWDC2021 28:00的“Platforms State of the Union”视频中提到
[Apple] 甚至增加了对文件的异步逐行迭代的支持
在 macOS 12/iOS 15 和 Swift 5.5 的基础中。
那个新 API 是什么,我现在如何通过文件异步逐行迭代?