Arayüz oluşturucuda iOS çok satırlı etiket


131

UILabelİOS için arayüz oluşturucuyu nasıl çok satırlı yapabilirim ? Denedim UITextViewama ihtiyaçlarımı tam olarak karşılamadı.

Etikete nasıl çok satırlı (metin) ekleyebilirim?


İd'nin neden ihtiyaçlarınızı karşılamadığını açıklayabilir misiniz? Salt okunur özellikli TextView, çok satırlı bir etiketle aynıdır.
Shreesh

Vurgulanmış metin rengi özelliği görünmüyor.
Samuli Lehtonen

7
Bu soruyu ziyaret eden diğer kişiler için, 5 veya n. Bunun yerine, 0'a ayarlayın (sonsuzluk sıralaması). Aşağıdaki vijay'in cevabını kontrol edin.
GoodSp33d

Yanıtlar:


178

Bir etiketin sahip olabileceği maksimum satır sayısını numberOfLinestanımlayan özelliği kullanabilirsiniz . Varsayılan olarak . Bunu olarak ayarlamak , etiketin sınırsız satıra sahip olacağı anlamına gelir10 .

Bunu kodla yapabilirsiniz:

textLabel.numberOfLines = 5 // for example

Veya Arayüz Oluşturucu'da:


Denedim, etiketi yazarken çalışıyor, ancak kabul etmek için enter tuşuna bastığımda hepsi tek satırda gidiyor.
Samuli Lehtonen

3
Ve widthetiketin nedir?
akashivskyy

8
Tamam, şimdi anladım, yüksekliği artırdım, bu yaptı. Teşekkürler!
Samuli Lehtonen

Sınırsız hatlar için Hatları 0 olarak ayarlayabilirsiniz.
paulmelnikow

2
IB'ye çok satırlı bir etiketin nasıl
yazılacağını

117

Interface Builder / Storyboard'da UILabel'e bir satır eklemek için Control+ Entertuşuna basın .


2
Teşekkürler, yapmaya çalıştığım
buydu

Çözüm bu olmalı!
SunnySonic

14
Güzel bir. Ama "Q" gerekli değil sanırım
Rendel

1
@Oliver Logic Xcode'dan çıkmıyor ... Doğru okumadınız. CONTROL + Q + ENTER dedi (ve CMD + Q değil) .. Ama Rendel haklı, sadece CONTROL + ENTER burada yeterli.
gaskbr

1
@Logic Xcode'dan çıkmıyor ... Doğru okumadınız. CONTROL + Q + ENTER dedi (ve CMD + Q değil) .. Ama Rendel haklı, sadece CONTROL + ENTER burada yeterli.
gaskbr

47

Teşekkürler AppleVijay!

Ayrıca sizeToFit'i şöyle çağırmak için:

label.lineBreakMode = UILineBreakModeWordWrap;
label.numberOfLines = 0;
[label sizeToFit];

Yükseklik otomatik olarak hesaplanacaktır.


11
Not: UILineBreakModeWordWrap, iOS6'dan itibaren kullanımdan kaldırılmıştır. [SetLineBreakMode: NSLineBreakWordWrapping] etiketini kullanın; yerine.
John Feagans

5
"By" eksik. label.lineBreakMode = NSLineBreakByWordWrapping
user1872384

1
Hızlı için UILineBreakModeWordWrap yerine NSLineBreakMode.ByWordWrapping kullanın
Deb

12

etiketin genişliğini gerektiği gibi küçük olarak ayarlayın ve ardından satır sonlarını kelime kaydırmaya ayarlamak için IB'yi kullanın

veya bunun gibi bir kodla kullanın

Bir çözüm buldum.

Birinin sadece aşağıdaki kodu eklemesi gerekir:

textLabel.lineBreakMode = NSLineBreakByWordWrapping;
textLabel.numberOfLines = 0;

5

Dinamik metin bilgisi için satır sayısını sıfır olarak ayarlayın, metniniz değiştiğinde faydalı olacaktır.

Programlı olarak (Swift 3)

var label = UILabel()
let stringValue = "iOS\nmultiline\nlabel\nin\nInterface\nbuilder"
label.text = stringValue
label.numberOfLines = 0 // Set 0, if number of lines not specified.
label.lineBreakMode = .byTruncatingTail // or .byWrappingWord
label.minimumScaleFactor = 0.8 . // It is not required but nice to have a minimum scale factor to fit text into label frame

Inetrface Builder'ı Kullanma

görüntü açıklamasını buraya girin

Not: Minimum Font ScaleMetni etiket çerçevesine sığdırmak için minimum ölçek faktörünün ayarlanması gerekli değildir , ancak güzel.


2

Düz UILabels satırları alanını 0 olarak ayarlayarak IB'de satır sayısı görünür. Etikete sağlanan alana göre birden çok satır oluşturacaktır.


1

İOS7'de (Xcode5) 0, film şeridinde sınırsız çoklu giriş için UILabel satırlarını ayarlamalısınız .
En önemlisi, ayarlayacağınız height of the UILabelgiriş hatlarını tutacak kutuyu ayarlamaktır.


0
textLabel.lineBreakMode = UILineBreakModeWordWrap;

textLabel.numberOfLines = 0;

CGSize size =  [[[arrNewsFeed objectAtIndex:row] objectForKey:@"c"]  sizeWithFont:[UIFont systemFontOfSize:14.0]  constrainedToSize:CGSizeMake(188, CGFLOAT_MAX)
                                                                     lineBreakMode:NSLineBreakByTruncatingTail];

textLabel.frame = (CGRect){.origin = cell.lblNewsDescription.frame.origin, .size = size};

0

NumberOfLines özelliğini 0'a eşitlerseniz, etiket verilen metnin gerekli satır sayısına otomatik olarak ayarlanacaktır.


0

Uzun zamandır bununla mücadele ediyordum. Etiket metnimin ikinci satırda görünmesini istedim. Ama ne yaparsam yapayım, UILabel kutusundan taşar. Benim için, otomatik yeniden boyutlandırma denetçisini değiştirmek işe yaradı. Basit düzeltme.

Benzer bir şey arayan biri yararlı bulabilir.


-2

X-Code 7.2 için

  1. - UILabel seçin

  2. - Nitelik müfettişi

  3. - Metin - İlişkilendirilmiş'i seçin

Bundan sonra, etiketinize ekleyebileceğiniz ve ayrıca Satır sayısını da bulabileceğiniz daha fazla öznitelik görebilirsiniz . Hangi etiketinizi çok satırlı yapar .

Çok satırlı UILabel için X Kodu Görüntüsü


IB'de Düz UILetiketli satır sayısı görülebilir.
Graham Lea
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.