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

  • 8bitdigitaltv

    8bitdigitalt

    31 AĞUSTOS 2011
  • placeboing

    placeboing

    7 Mart 2006
  • SRC RECORDS

    SRC RECORDS

    2 EKİM 2006