2013-12-13 1 views
0

인터페이스 작성기 (IB)를 통해 추가되는 일부 레이블에 대한 커스텀 커닝을 지원해야합니다. 사용자 정의 클래스는 IB의 레이블에 설정되며 텍스트도 여기에 설정됩니다. attributedText 속성으로 text 속성을 무시하려고하면 작동하지 않습니다.RubyMotion의 UILabel을 서브 클래 싱하여 attributedText 커닝을 설정하십시오.

UIButton 하위 클래스에서 정상적으로 작동하지만 비슷한 기술이 UILabel과 작동하지 않습니다.

awakeFromNib 또는 drawRect:rect에 설정할 때 attributedText 속성이 아무런 영향을 미치지 않는 것 같습니다.

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

귀하의 코드는 하나의 작은 변화에 나를 위해 잘 작동 :

물론
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 
+0

, 그것은 setter 메소드 대가 : 당신이 self.attributedText = (self에서의 메소드 호출)를 사용합니다 재산. 커닝이 적용되는 것을 보지 못했지만, 테스트에 참여 했습니까? – wprater

+0

예, 위의 정확한 코드는 각 문자 사이에 추가 공백이있는 텍스트를 생성했습니다 (iOS 7) –

관련 문제