2010-09-29 18 views
6

Her şey için 'net bilgi/örnekler için bakıyorum ...IPhone: UITextView'deki satır aralığını değiştirir misiniz?

UITextView nesnesi içindeki metnin satır aralığını çift aralıklı olarak değiştirmeye çalışıyorum. Çekirdek Metin ile yapabileceğinizi düşündüm, ama bir çözüm bulamadınız!

Örnek herhangi bir kod veya bilgi büyük takdir edilecektir! Teşekkürler!

cevap

5

Ağın her tarafına bakmak zorunda değilsiniz. UITextView dokümantasyonuna bir bakış, satır aralığını değiştirmenin bu kontrol tarafından desteklenmediğini belirlemek için yeterlidir.

Çekirdek Metin ile, çizdiğiniz metnin düzenini tam olarak denetleyebilirsiniz. Ancak, UITextView benzeri bir kontrolün sıfırdan yeniden yazılması çok iş olurdu.

+0

kesinlikle:

yourTextView.layoutManager.delegate = self 

bu temsilci yöntemi ekleyin ... (vs.) ViewController veya UIView sınıfına bu temsilciyi ekleyin ve sonra da UITextView oluştururken herhangi bir hat yüksekliği değişikliğini destekleyin. –

+0

Çoklu satırlar arasındaki boşlukları nasıl değiştirebilirim? teşekkürler – SAKrisT

+0

@Mark Suman'ın cevabı, iOS 6'dan sonra faydalıdır. –

4

Bu sorudan önce iOS 6 soruldu. Bunu yapmak için bir yol isteyenler için güncellenmiş bir cevap göndermek istiyorum.

Bu, iOS 6 ve daha sonra bir NSAttributedString kullanılarak yapılabilir. UITextView artık özellikli bir dizeyi özelliklerinden biri olarak kabul eder. Satır aralığı dahil olmak üzere atıf yapılan dizelerle her türlü metin işleme yapabilirsiniz. Dizenin paragraf stili özniteliği için minimum ve maksimum çizgi yüksekliklerini ayarlayabilirsiniz.

Daha fazla bilgi için NSAttributedString Class Reference'a bakın. Sen NSLayoutManagerDelegate kullanabilirsiniz

NSMutableParagraphStyle *paragraph = [[NSMutableParagraphStyle alloc] init]; 
paragraph.minimumLineHeight = 21.0f; 
paragraph.maximumLineHeight = 21.0f; 
NSAttributedString *attributedString = [[NSAttributedString alloc] initWithString:@"Test text line 1\nTest text line 2\nTest text line 3" attributes:@{NSParagraphStyleAttributeName: paragraph}]; 
textView.attributedText = attributedString; 
1

:

Burada neler yapabileceğini bir örnek. UITextView değil iOS 4.3 itibariyle

func layoutManager(layoutManager: NSLayoutManager, lineSpacingAfterGlyphAtIndex glyphIndex: Int, withProposedLineFragmentRect rect: CGRect) -> CGFloat { 
    return 5 //Whatever you'd like... 
} 
İlgili konular