2013-09-25 36 views
15

Tôi vừa chuyển từ xCode 4.x sang xCode 5, cùng với việc chuyển sang iOS 7. Trong quá khứ, tôi đã đặt văn bản có dấu cách ở một số UILabel và sử dụng căn chỉnh phải để một khoảng trống nhỏ ở bên phải văn bản. Vì tôi đã chuyển sang xCode 5, hành vi này dường như đã thay đổi. Khi văn bản UILabel căn chỉnh văn bản của nó, văn bản dường như đang bỏ qua dấu cách - và căn chỉnh văn bản như thể có không có khoảng trống ở cuối.Hành vi căn chỉnh UILabel có thay đổi trong xCode 5/iOS 7 không?

Có ai khác đã xem hành vi này không? Có cách nào để thêm cạnh insets trong xCode để điều chỉnh cho hành vi mới này, hoặc phải được thực hiện trong mã?

+0

Tôi đã thấy chính xác hành vi tương tự trên thiết bị iOS 7. Trong trường hợp của tôi, đó là trong một ứng dụng cũ mà tôi chưa di chuyển sang Xcode 5, vì vậy tôi vẫn đang xây dựng nó với Xcode 4.6.3. Điều này có nghĩa là nó cũng ảnh hưởng đến chế độ tương thích iOS 6. Trong ứng dụng này, lý do mà tôi đã thêm các khoảng trống ở đầu tiên, là để vượt qua một lỗi UILabel khác: Văn bản in nghiêng liên kết phải được cắt bớt ở cạnh bên phải! Vì vậy, bây giờ tôi đã bị buộc phải giải quyết mới trong cùng một đoạn mã. Lần này, tôi đã kết thúc với một sửa chữa bẩn, thay đổi văn bản để căn giữa và điều chỉnh khung động. – Magnus

+0

Bạn có thể thử sử dụng tùy chọn-không gian (hoặc alt-không gian) vì điều này cho một ký tự không gian khác nhau – amergin

Trả lời

7

Tôi thấy cùng một hành vi. Tôi nghĩ rằng vấn đề không phải là sự thay đổi để xCode5 nhưng khi một thay đổi để chạy theo ios7. Hiện tại, Apple đã xóa tất cả các ký tự khoảng trắng trong các khối văn bản sẽ được hiển thị bằng cách sử dụng UILabel đang được sử dụng để ghi các dòng ở đầu dòng hoặc cuối dòng. Nếu nhiều ký tự khoảng trắng được sử dụng trong một dòng giữa hai từ, các ký tự đó sẽ không bị tước.

Chúng tôi đã sử dụng UILabels để bố cục khối đa văn bản được cung cấp từ ngôn ngữ đánh dấu. Một số nội dung văn bản cần phải được căn giữa nhưng có không gian cố tình được thêm vào để đẩy một dòng văn bản cụ thể sang trái hoặc sang phải. Điều này đã được công nhận và hoạt động hoàn hảo dưới ios6 nhưng phá vỡ theo ios7.

Tại sao Apple thực hiện thay đổi này, tôi tự hỏi. Bất kỳ ai khác có vấn đề này - bất kỳ ý tưởng nào để khắc phục sự cố này? Chúng tôi đang thử nghiệm với một phông chữ tùy chỉnh có một ký tự điều khiển trông giống như một không gian nhưng không.

+0

Cảm ơn. Có những lúc tôi sử dụng dấu cách trước văn bản trên một nút, để thêm khoảng trống giữa hình ảnh của nút và tiêu đề của nút (mà tôi tin là nội bộ là một 'UILabel'.Tôi đang sử dụng căn chỉnh điều khiển trung tâm - dường như hoạt động như trước đây. Tôi chưa kiểm tra xem liệu hành vi của mọi hình thức căn chỉnh văn bản (trái, phải, chính giữa) đã thay đổi chưa. –

+0

Tôi cũng gặp vấn đề này. Vô cùng bực bội. Điều thậm chí còn xa lạ đối với tôi là dường như chỉ có những khoảng trống ở cuối bị ảnh hưởng - không gian hàng đầu vẫn được hiển thị. – DanM

+0

Và hơn nữa, cùng một quyết định khó khăn để bỏ qua dấu cách dường như cũng được áp dụng cho phép tính cho adjustsFontSizeToFitWidth. – DanM

1

Hãy xem UILabel text margin

Hầu hết các đề xuất đều thực hiện với mã.

tôi đã làm tôi với một số điều như thế này:

[myLabel setFrame:CGRectMake(75 ,20,size.width + 5,size.height+2)]; nơi sizeCGSize của nội dung văn bản của tôi.

Bạn cũng có thể thử thực hiện việc này với Auto Layout constraints.

+0

Cảm ơn. Có rất nhiều ví dụ để thực hiện điều này bằng cách sử dụng mã. Tôi tò mò muốn biết liệu có ai khác đã thấy thay đổi này trong hành vi UILabel hay không. –

-1

Vâng, tôi đã nhìn thấy nó và tôi không nhìn thấy một sửa chữa chung đơn giản cho nó!

0

tôi đã sử dụng \ a:

label.text = [NSString stringWithFormat: @"%@ \a", originalString]; 

Đó lực lượng/thủ đoạn không gian vào hiển thị.

+0

Phụ thêm \ a không hoạt động. iOS 10. –

Các vấn đề liên quan