- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我想使用 MVVMCross 将属性字符串绑定(bind)到 UILabel。要绑定(bind)一个常规字符串,我会这样做:
set.Bind(MyLabel).To(vm => vm.MyString);
但我需要一个字符串,其中部分文本将使用一种颜色和一种字体大小,而另一部分将使用不同的颜色和不同的字体大小。如果这是静态的,没问题,我会在界面生成器中添加一个标签并将其设置为“属性”,然后在我需要的字符串的任何部分上设置我想要的任何字体选项。
所以我想到使用 Mvvmcross,我可能需要一个转换器来将我的源字符串转换为属性字符串,所以我尝试从 MvxValueConverter<string,NSMutableAttributedString>
创建一个转换器它只是在其 Convert
中执行此操作方法:
return new NSMutableAttributedString(value);
最后我会添加一些不同的属性。不幸的是,这不起作用。如果我这样设置我的绑定(bind):
set.Bind(MyLabel).To(vm => vm.MyString).WithConversion("MyConverter");
看起来 MvvmCross 只是做了一个 .ToString
在属性字符串上显示为:
Some Text {}
注意 {}
不是原始字符串的一部分。
有没有办法在 MVVMCross 中绑定(bind)属性字符串?
最佳答案
如果你打电话
set.Bind(MyLabel).To(vm => vm.MyString);
然后您将绑定(bind) UILabel 的默认属性,即 string
属性 Text。
您需要改为绑定(bind) AttributedText。尝试添加如下内容:
.For(l => l.AttributedText)
这里有一些关于使用 AttributedText 的问题 - 例如 Underline text in UILabel in monotouch (porting ObjC code)
有关 mvx 数据绑定(bind)的更多信息,请参阅 https://github.com/slodge/MvvmCross/wiki/Databinding
关于ios - 如何绑定(bind) NSAttributeString(或 NSMutableAttributedString),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17934294/
我正在使用这个 git 项目:https://gist.github.com/xslim/851018 我想在我的 TextView 上显示字体样式,例如粗体、斜体、下划线...... 我这样调用它:
我想使用 MVVMCross 将属性字符串绑定(bind)到 UILabel。要绑定(bind)一个常规字符串,我会这样做: set.Bind(MyLabel).To(vm => vm.MyStrin
我是一名优秀的程序员,十分优秀!