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

  • bombjack2991

    bombjack2991

    29 HAZİRAN 2008
  • DudeFromUkraine

    DudeFromUkra

    7 Ocak 2008
  • JorteexHD

    JorteexHD

    20 NİSAN 2012