Pertanyaan ios6 uilabel bukan teks tengah yang disejajarkan


Saya sedang mengerjakan aplikasi ios minimum ios 5 dan saya baru saja menyentuh masalah aneh dengan uilabel. atau mungkin aku kehilangan sesuatu yang jelas. Lagi pula masalah yang saya hadapi adalah bahwa saya memiliki sebuah uilabel yang akan menjadi teks berpusat sejajar. semua berfungsi dengan baik pada ios 5 tetapi pada ios 6 selalu rata kiri. Saya melihat bahwa cara lama dalam menyelaraskan teks uilabel telah usang dan pengaturannya harus bekerja.

self.topComment.textAlignment = NSTextAlignmentCenter;

Tapi bahkan tidak dengan cara ini masih hanya pusat disejajarkan pada ios 5 dan rata kiri pada ios 6. Saya punya beberapa kode yang mengubah ukuran font teks di label untuk mencoba membuatnya sesuai dengan ukuran min dan max.

UIFont *font = self.topComment.font;

for(int i = maxFont; i > minFont; i--)
{
    // Set the new font size.
    font = [font fontWithSize:i];
    CGSize constraintSize = CGSizeMake(self.topComment.frame.size.width, 1000);
    CGSize labelSize = [topString sizeWithFont:font constrainedToSize:constraintSize lineBreakMode:UILineBreakModeWordWrap];
    if(labelSize.height <= self.topComment.frame.size.height ) {
        fits = YES;
        break;
    }
    //self.topComment.text = topString;

}


self.topComment.font = font;
self.topComment.text = topString;

Jadi itu adalah satu-satunya hal yang saya lakukan untuk label tetapi selalu dibiarkan selaras pada ios 6. Penting untuk dicatat bahwa jika saya memasukkan sebuah uilabel dengan teks dan tengah menyelaraskannya dan tidak menggunakan kode di atas maka itu berpusat pada keduanya ios 5 dan 6.


11
2017-10-17 10:45


asal


Jawaban:


Ok terlihat seperti menyalakan Kencangkan Surat Spasi memiliki hasil yang berbeda pada ios 5 dan 6. Sejujurnya saya tidak dapat menjelaskan mengapa perbedaan tetapi hanya mematikan ini memberikan centering label yang diinginkan untuk saya. Hanya meninggalkan ini di sini sebagai jawaban jika ada orang lain yang membuat kesalahan konyol yang sama.

Sebagai contoh:

    lbl.adjustsLetterSpacingToFitWidth = NO;

Catatan ini tidak berlaku lagi di iOS 7.0.


37
2017-10-17 12:09



Untuk iOS 6 atau lebih baru:

label.textAlignment = NSTextAlignmentLeft;

-2
2017-12-15 12:45