SORU
26 NİSAN 2010, PAZARTESİ


Uİlabel içinde altı çizili metin

Nasıl dize birkaç satırlık bir metin altı çizili miyim? Bazı insanlar UİWebView önermek buluyorum, ama belli ki sadece metin işleme için çok ağır bir sınıftır.

Düşüncelerimi her satır, her dize, başlangıç noktası ve uzunluğu olduğunu bulmaktı. Ve buna göre altında bir çizgi çizin.

Uzunluğu anlamaya ve dize için bir çıkış noktası nasıl sorunlarla karşılaşıyorum. Kimse bu konuda bana yardımcı olabilir misiniz?

Bu çizim metin için rect sınırlayıcı olmalıdır -[UILabel textRectForBounds:limitedToNumberOfLines:], kullanmaya çalıştı? Sonra hizalama üzerinde çalışmam gerekiyor? Nasıl merkezi-haklı ve doğru haklı olduğunda her satırın başlangıç noktası alabilir miyim?

Şimdiden teşekkür ederim çok yeni buradayım.

CEVAP
26 NİSAN 2010, PAZARTESİ


UİLabel gelen alt ve drawRect yöntemi geçersiz kılabilirsiniz:

- (void)drawRect:(CGRect)rect {
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    CGContextSetRGBStrokeColor(ctx, 207.0f/255.0f, 91.0f/255.0f, 44.0f/255.0f, 1.0f); // RGBA
    CGContextSetLineWidth(ctx, 1.0f);

    CGContextMoveToPoint(ctx, 0, self.bounds.size.height - 1);
    CGContextAddLineToPoint(ctx, self.bounds.size.width, self.bounds.size.height - 1);

    CGContextStrokePath(ctx);

    [super drawRect:rect];  
}

UDP:
İOS 6 Apple artık çok daha kolay oldu UİLabel için destek NSAttributedString, eklenen ve birden fazla satır için çalışır:

NSDictionary *underlineAttribute = @{NSUnderlineStyleAttributeName: @(NSUnderlineStyleSingle)};
myLabel.attributedText = [[NSAttributedString alloc] initWithString:@"Test string" 
                                                         attributes:underlineAttribute];

Hala ve iOS iOS 4 TTTAttributedLabel kullanmanızı tavsiye ederim 5, destek yerine etiket elle altını çizmek istiyorsanız. Ancak eğer bir satırı UİLabel altını çizmek gerekir ve bileşenleri, kod, yukarıda hala işe yarayacağını üçüncü taraf kullanmak istemiyorum.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • hanksranger

    hanksranger

    6 EKİM 2009
  • RocketJump

    RocketJump

    22 ŞUBAT 2006
  • thegeniuses.tv

    thegeniuses.

    11 Aralık 2006