2012-10-08 29 views
5

Tôi có một số UILabel Đôi khi tôi muốn căn giữa theo chiều dọc trong ô. Điều này phải được thực hiện theo chương trình. Tôi đã thử thêm các hạn chế sau đây vào trung tâm nó (LOCNAME là UILabel):ios 6: Trung tâm UILabel theo chiều dọc sử dụng các ràng buộc Bố cục tự động

[cell addConstraint:[NSLayoutConstraint constraintWithItem:cell 
attribute:NSLayoutAttributeCenterY relatedBy:0 toItem:cell.locName 
attribute:NSLayoutAttributeCenterY multiplier:1 constant:0]]; 

Đây là kết quả tôi nhận được:

enter image description here

Dường như định tâm của nó, nhưng có lẽ thay đổi chiều cao của UILabel hoặc gì đó?

Dưới đây là bộ điều khiển xem trong IB:

enter image description here

Làm thế nào tôi có thể đạt được dọc trung programatically?

+0

Tại sao điều này phải được thực hiện theo chương trình? Tại sao bạn không chỉ đơn giản là thiết kế một tế bào khác nhau bằng cách sử dụng IB và sequester mà thay vì này? – slf

+0

Cảm ơn! Điều đó sẽ làm các trick cho trường hợp cụ thể của tôi. Bạn sẽ làm gì nếu chúng ta không giao dịch với các tế bào? Giả sử chúng tôi chỉ cố gắng căn giữa nhãn trong một UIView chung có lập trình? –

+0

Điều này có thể không phải là cách tốt nhất, nhưng tôi có lẽ sẽ tính toán chiều cao và làm một toán học nhỏ để tìm ra những gì CGRect nên được của khung. – slf

Trả lời

0

cố gắng đạt đến chiều cao UIlabel sau khi căn giữa nó ???

hoặc u có thể phân bổ lại vị trí nhãn tại ô tùy chỉnh của bạn theo chương trình.

3

Làm thế nào về điều này: Ngoài hạn chế định tâm của bạn, thêm ràng buộc chiều cao cho cell.locName để làm cho nó cao hơn.

[cell.contentView addConstraint: 
    [NSLayoutConstraint constraintWithItem:cell.locName 
           attribute:NSLayoutAttributeHeight 
           relatedBy:NSLayoutRelationGreaterThanOrEqual 
            toItem:nil 
           attribute:NSLayoutAttributeNotAnAttribute 
           multiplier:1 
            constant:20]]; 
2

Có thể bạn đang nhấn các ràng buộc khác đã có sẵn trong ô. Việc thêm ràng buộc không làm cho các ràng buộc khác biến mất - nếu bạn có khoảng cách giữa các nhãn trên và dưới, ví dụ, để thỏa mãn điều này và ràng buộc định tâm mới, chiều cao của nhãn trên cùng sẽ phải co lại.

Bạn có thể cần tạo các cửa hàng cho các ràng buộc khác này và loại bỏ chúng để đạt được thiết kế trung tâm.

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