我有这样的便利扩展:
extension NSMutableAttributedString {
func append(string: String, attributes: [String: Any]) {
let attributed = NSMutableAttributedString(string: string)
let range = NSRange(location: 0, length: string.utf16.count)
for (attribute, value) in attributes {
attributed.addAttribute(attribute, value: value, range: range)
}
append(attributed)
}
}
我在UILabel中设置文字样式:
let normalAttributes = [NSForegroundColorAttributeName: darkGray]
let lightAttributes = [NSForegroundColorAttributeName: lightGray]
let text = NSMutableAttributableString()
text.append("Part 1", attributes: normalAttributes)
text.append("Part 2", attributes: lightAttributes)
所有这些都在自定义UITableViewCell类中。发生的事情是文本使用NIB文件中的基色进行渲染,而不是根据我的属性字符串自定义前景颜色 - 直到我做某事(如滚动)导致细胞重用,之后突然颜色正确渲染。
我似乎无法发现对象的生命周期有任何问题,并且没有其他地方可以搞乱这个标签。标签fwiw是一个IBOutlet,所以我不是每次创建一个新的或任何奇怪的。
答案 0 :(得分:2)
原来它的问题与:
相同Attributed string in tableviewcell not showing bold text until the cell is dequeued and reloaded
所以通过设置字体和&来解决它。在设置nil
之前,标签上的颜色为attributeText
。很烦人,但很容易做到这一点。
答案 1 :(得分:0)
如@Kiril Savino所建议。将q
中的from sqlalchemy.event import listen
def q(page=0, page_size=None):
query = session.query()
listen(query, 'before_compile', apply_limit(page, page_size), retval=True)
return query
def apply_limit(page, page_size):
def wrapped(query):
if page_size:
query = query.limit(page_size)
if page:
query = query.offset(page * page_size)
return query
return wrapped
设置为Font & Color
可以很容易地解决问题。
但是我今天注意到的另一件事是UILabel
中使用的nil
。
应该从Default Font
起Storyboard or XIB
进行这项工作。
如果您使用了其他System Font
,它将无法正常工作。
因此,请确保Storyboard or XIB
中的Custom Font
应该Default Font
。
谢谢。