How to set kerning in iPhone UILabel

后端 未结 9 1180
Happy的楠姐
Happy的楠姐 2020-11-30 01:12

I am developing an iPhone app, and I want to set kerning in UILabel. The code I\'ve written (possibly around kCTKernAttributeName) seems to be in error. How mig

9条回答
  •  再見小時候
    2020-11-30 02:00

    Old question, but you can do it now (easily).

    NSMutableAttributedString *attributedString;
    attributedString = [[NSMutableAttributedString alloc] initWithString:@"Please get wider"];
    [attributedString addAttribute:NSKernAttributeName value:@5 range:NSMakeRange(10, 5)];
    [self.label setAttributedText:attributedString];
    

    enter image description here

    For Nov 2013, Just to expand on this great answer, here's some totally typical code. Usually you'd set the font as well. Note in the comments the old-fashioned way using ordinary old .text. Hope it helps someone

    NSString *yourText = @"whatever";
    
    UILabel* label = [[UILabel alloc] initWithFrame:CGRectMake(0,0,0,0)];
    
    // simple approach with no tracking...
    // label.text = yourText;
    // [label setFont:[UIFont fontWithName:@"HelveticaNeue-Light" size:24]];
    
    NSMutableAttributedString *attributedString;
    
    attributedString = [[NSMutableAttributedString alloc] initWithString:yourText];
    
    [attributedString addAttribute:NSKernAttributeName
                             value:[NSNumber numberWithFloat:2.0]
                             range:NSMakeRange(0, [yourText length])];
    
    [attributedString addAttribute:NSFontAttributeName
                             value:[UIFont fontWithName:@"HelveticaNeue-Light" size:24]
                             range:NSMakeRange(0, [yourText length])];
    
    label.attributedText = attributedString;
    
    label.textColor = [UIColor blackColor];
    label.backgroundColor = [UIColor clearColor];
    label.textAlignment = NSTextAlignmentCenter;
    
    [label sizeToFit];
    

提交回复
热议问题