Görünümünde kenar boşlukları kalmadan NSAttributedString
çizimi yapmakta sorun yaşıyorum.Görünümde kenar boşlukları olmayan bir dizeyi nasıl çizebilirim?
NSDictionary *attributes = @{NSFontAttributeName: [UIFont systemFontOfSize:72.0f]};
NSAttributedString *string = [[NSAttributedString alloc] initWithString:@"Hello"
attributes:attributes];
[string drawWithRect:rect
options:NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesDeviceMetrics
context:nil];
Bu aşağıda davranışa yol açar:
Not sol ve üst kısmında marjları İşte benim kod.
- Bu kenar boşluklarından nasıl kaçınabilirim ve metni içerdiği görünümün kenarlarıyla tam olarak nasıl eşleştirebilirim? İstediğim şey görüntünün kenarlarını karşılayacak gerçek çizilmiş metin için, yani, herhangi bir glifte çizilen en üst piksel, görünümün en üstünde olmalı ve herhangi bir glifte çizilen en soldaki piksel sol tarafın solundadır. görünüm.
- 1 varsayarsak, çizilen metnin gerçek genişliğini ve yüksekliğini elde edebilmemin bir yolu var, böylece yazıyı alt ve sağ kenarlarla da birleştirmek için yazı tipi boyutunu ve karakter aralığını hesaplayabilirim?
Ben bakış kenarlarını karşılamak yapmadan metni hizalama yolları da olabileceğini biliyoruz, ama bana görünüm sezgisel benzeri autolayout kullanarak ve çalışmak için izin verecektir bakış kenarlarını birleşmesini sağlama.
Dize, önde gelen veya devam eden boşluk içeriyorsa, bu davranış hakkında umurumda değil.
Bu, NSAttributedString
ile mümkün değilse, bu davranışı önereceğiniz başka yollar var mı?
soru ile ilgili 2: http://stackoverflow.com/questions/3429671/how-to-get-the-width-of-an-nsstring – luk2302
İkinci resim neden doğru? "O" dan sonra boşluk var ve tüm harflerin altında boşluk var. Bana öyle görünüyor ki, kendinize, neyin peşinde olduğunuzu açıkça belirtmediniz. – matt
Ayrıca, renkli arka plan kritik mi? Çünkü eğer arkaplan net olsaydı, manzara sınırlarının nerede olduğunu kimse bilemezdi ve mesele düşecekti. – matt