我有一个单独的资源包随我的框架一起提供.我想在该捆绑中放置和使用资产目录.然而UIImage imageNamed:说它使用当前的应用程序主包.如何从另一个捆绑包中的资产目录加载图像?
使用[bundle pathForResource:name ofType:@"png"]的技巧不适用于已编译的资产目录.我已经验证了Assets.car文件确实在包中,它包含我的图像.
我以为我会节省其他时间的调试,并说设置adjustsFontForContentSizeCategory为true对你设置attributedText值的标签没有影响(至少在tableview单元格标签中).
幸运的是,解决方案是自己在属性字符串上设置字体.我写了一个小的实用程序扩展:
public extension NSMutableAttributedString {
public func setFont(_ font: UIFont) -> NSMutableAttributedString {
addAttribute(NSAttributedStringKey.font, value: font, range: NSRange(location: 0, length: string.count))
return self
}
}
Run Code Online (Sandbox Code Playgroud)
在哪里设置您要调用的attributedText属性
@IBOutlet weak var myLabel: UILabel!
var myAttributedString: NSAttributedString = .....
myLabel.attributedText = NSMutableAttributedString(attributedString: myAttributedString).setFont(myLabel.font)
Run Code Online (Sandbox Code Playgroud) 我正在创建一个TextField由多个装饰视图组成的自定义视图。我希望能够TextField使用仅适用于该子视图的视图修饰符(例如键盘、大写等)设置内部。
我认为最好的方法是传递一个可选ViewModifier参数并使用它,如下所示:
struct MySuperTextField: View {
var vm: ViewModifier?
var body: some View {
TextField(...)
.modifier( vm ?? EmptyModifier() )
// ... more views here
}
}
Run Code Online (Sandbox Code Playgroud)
associatedType由于in ,这不起作用ViewModifier。唉,也没有AnyViewModifier这样的东西(而且我不知道如何制作一个有效的)。
有人设法做这样的事情吗?我在网上搜索找不到任何东西。
一个例子是
struct LastNameModifier: ViewModifier {
func body(content: Content) -> some View {
content
.autocapitalization(.words)
.textContentType(.familyName)
.backgroundColor(.green)
// ... anything else specific to names
}
}
struct EmailModifier: ViewModifier {
func body(content: Content) -> some View {
content
.keyboardType(.emailAddress)
.textContentType(.emailAddress) …Run Code Online (Sandbox Code Playgroud)