Ios Instagram样式的注释,基于UIButton计算缩进宽度

Ios Instagram样式的注释,基于UIButton计算缩进宽度,ios,cocoa-touch,swift,uibutton,Ios,Cocoa Touch,Swift,Uibutton,我正在努力实现一些instagram风格的评论。除了第一次加载之外,我似乎所有的东西都显示正确。我使用UIButton作为用户名,下面有一个标签和注释。然后,UILabel按UIButton的宽度缩进 问题似乎在于UIButton和UILabel是同时生成和渲染的,因此它们不能正确对齐-在第二次传递时,事情似乎得到了解决 第一次加载tableview单元格时,它看起来是这样的: 一旦tableview被卷走,如果您向后滚动,它将正确呈现: cellForRowAtIndexPath如下所示:

我正在努力实现一些instagram风格的评论。除了第一次加载之外,我似乎所有的东西都显示正确。我使用UIButton作为用户名,下面有一个标签和注释。然后,UILabel按UIButton的宽度缩进

问题似乎在于UIButton和UILabel是同时生成和渲染的,因此它们不能正确对齐-在第二次传递时,事情似乎得到了解决

第一次加载tableview单元格时,它看起来是这样的:

一旦tableview被卷走,如果您向后滚动,它将正确呈现:

cellForRowAtIndexPath如下所示:

cell.usernameButton.setTitle(comment.user.userName, forState: UIControlState.Normal)

        var style = NSMutableParagraphStyle()
        style.firstLineHeadIndent = cell.usernameButton.frame.width + 2
        let s = [NSParagraphStyleAttributeName : style]

        cell.commentLabel.attributedText = NSAttributedString(string: comment.text, attributes: s)
UITableViewCell只有两个组件,一个UIButton和UILabel,UIButton位于顶部


我的问题是:有没有办法告诉UILabel在计算UIButton的自动布局后进行渲染?

不知道如何在swift中进行渲染,但您是否尝试过类似于
[NSOperationQueue mainQueue]addOperationWithBlock{//更新block}中的两个UI元素]@LouisTur哦,哇。成功了。在swift中是NSOperationQueue.mainQueue().addOperationWithBlock({()->Void In})。我以前从未见过,用操作队列更新UI元素是常见的吗?噢,太棒了,它在@puttputt中起作用了!是的,据我所知,所有UI更新都应该在主队列上完成。mainqueue会立即更新,因此任何奇怪的UI更改都可以通过这样做来解决