在RubyMotion中对UILabel进行子类化以设置attributedText字距

时间:2013-12-13 23:21:37

标签: ios objective-c uilabel rubymotion

我需要支持通过Interface Builder(IB)添加的某些标签的自定义字距调整。自定义类在IB中的Label上设置,文本也在那里设置。尝试使用text属性覆盖attributedText属性不起作用。

这适用于我的UIButton子类,但类似的技术不适用于UILabel

attributedTextawakeFromNib中设置drawRect:rect属性似乎没有任何影响。

实施例

class KernedLabel < UILabel

  def awakeFromNib
    super

    attributed_text = NSMutableAttributedString.alloc
      .initWithString("Atributed Text")

    attributed_text.addAttribute(NSKernAttributeName,
                                 value: 1.0,
                                 range: [0, attributed_text.length])

    attributedText = attributed_text
  end

end

1 个答案:

答案 0 :(得分:1)

您的代码只对我做了一个小改动:您需要使用self.attributedText =(调用self上的方法):

def awakeFromNib
  super

  attributed_text = NSMutableAttributedString.alloc
    .initWithString("Atributed Text")

  attributed_text.addAttribute(NSKernAttributeName,
                               value: 1.0,
                               range: [0, attributed_text.length])

  self.attributedText = attributed_text
end