2014-10-29 16 views
7

Tôi đang cố gắng sử dụng Bố cục tự động cho ô xem bảng tùy chỉnh trong ứng dụng của mình.Nhãn AutoLayout bị cắt ở bên phải màn hình

Tôi dường như không thể nhận được các ràng buộc hoàn toàn đúng.

Tôi đã đặt nhãn ra trong Ô xem bảng tùy chỉnh, nhưng các nhãn vẫn bị cắt. Bất kỳ ý tưởng?

Cảm ơn! Sẽ đăng bất cứ điều gì khác cần thiết. Đã cố gắng hiển thị thông tin cần thiết trong hình bên dưới:

Gỡ lỗi bằng Xcode. Bằng cách nào đó những gì cho thấy trong Simulator trông khác với trong Xcode gỡ lỗi.

Dưới đây là độ rộng của TableView của tôi hiển thị: enter image description here

UPDATE: Vấn đề ở đây có liên quan đến những gì người dùng mờ nói trong câu trả lời được chấp nhận, nhưng tôi muốn làm Q & Một một chút rõ ràng hơn bây giờ tôi đã tìm ra cho bất kỳ ai khác biết chuyện này.

Trong nhận xét ban đầu của mình, anh ấy đã đề cập đến việc gỡ lỗi Xcode View, điều này thật tuyệt vời và tôi có thể đào sâu thêm một chút. Nó được gọi là Trợ lý biên tập: Xem trước thiết bị, nơi bạn có thể xem bố cục và các lớp trên màn hình để xem liệu có thể bạn có nhãn chồng lên hoặc tắt màn hình dựa trên thiết bị đang chạy hay không. Nếu bạn muốn kiểm tra nhiều thiết bị có kích thước, chỉ cần nhấn biểu tượng dấu cộng ở góc dưới bên trái của ảnh này. enter image description here

Điều này giúp tôi tìm các vấn đề về kích thước và xếp chồng chồng chéo với TableView. Tôi đã có thể thấy nó trông như thế nào trên từng kích thước thiết bị.

Điều gì cũng giúp đôi khi sử dụng menu Ghim. Đôi khi các nhãn có thể chạy khỏi màn hình vì nó không biết các ràng buộc của ô dựa trên kích thước thiết bị. Vì vậy, nhãn của bạn có thể chạy ngoài màn hình nếu nhãn dựa trên bố cục ngang nhưng thiết bị là iPhone 5 và nằm trong Portrait ví dụ. Đây là menu Pin:

enter image description here

Hy vọng rằng sẽ có ý nghĩa và mang lại một số màu sắc hơn cho vấn đề. Hãy cho tôi biết nếu bạn có bất kỳ câu hỏi nào, cảm ơn vì đã giúp mọi người!

+0

Xin chào một lần nữa. Bạn biết về Xcode 6 xem gỡ lỗi, phải không? (Nó giống như tiết lộ.) Vì vậy, sử dụng Xcode 6 xem gỡ lỗi để xem những gì thực sự xảy ra ở đây. – matt

+0

@matt yeah Tôi đã cố gắng tìm ra nó bởi vì nó cho tôi thấy một cái gì đó khác với những gì tôi chạy trong Simulator, vì vậy tôi không chắc chắn những gì đang xảy ra? Tôi đã cập nhật câu hỏi của mình để hiển thị thêm 2 hình ảnh về chương trình mô phỏng gỡ lỗi giả lập và xem. Nếu bạn có bất kỳ ý tưởng tại sao thats xảy ra làm cho biết. – Realinstomp

+0

Vâng, có vẻ như chính xác những gì tôi đề xuất trên các câu hỏi khác mà bạn hỏi - nó không phải là các nhãn đó là vấn đề, đó là bản thân xem bảng đó là quá rộng. – matt

Trả lời

10

Vấn đề là bạn đang sử dụng bố trí tự động nhưng bạn đã không thực hiện bất cứ điều gì về kích thước xem bảng. Chế độ xem bảng ở đây không phải là chế độ xem của trình điều khiển chế độ xem của bạn; nó là một subview. Chế độ xem của trình điều khiển chế độ xem của bạn được tự động định kích thước của thiết bị/cửa sổ nhưng các bản xem phụ của nó không được tự động thay đổi kích thước. Vì vậy, bạn đang kết thúc với xem bảng quá rộng cho thiết bị; toàn bộ bảng đang dính vào không gian ở phía bên phải.

+0

Làm cho tinh thần, cảm ơn cho chính tả nó ra nhiều hơn một chút ở đây quá, vì vậy ở mức tối thiểu, tôi sẽ cần một số loại hạn chế về kích thước đúng nó có vẻ như – Realinstomp

+0

Không, không "ở mức tối thiểu". Ràng buộc _must_ xác định kích thước và vị trí của mọi thứ _completely_. – matt

+0

K đoán tôi nên rõ ràng hơn khi tôi viết điều đó, không phải ở mức tối thiểu nhưng là "một trong số tối thiểu", bạn nói đúng, cảm ơn! – Realinstomp

3

Sử dụng một không gian dấu từ phía bên phải của nhãn của bạn đến các cạnh của SuperView của họ, và đặt nó vào greater than thay vì equals với giá trị ~ 5

+0

Đã thêm một ảnh chụp màn hình khác vào câu hỏi ban đầu của tôi cho thấy những gì tôi đã thử theo đề xuất của bạn và vì một lý do nào đó nó vẫn bị cắt, có bất cứ điều gì dính vào bạn mà tôi đang thiếu không? Cảm ơn Levi! – Realinstomp

+0

Nó có vẻ tốt, nhưng có lẽ nó là giám sát là tắt sau đó. Bạn nên đặt một điểm ngắt trong phương thức 'cellForRowAtIndexPath' hoặc' willDisplayCellForRowAtIndexPath' (có thể tốt hơn ở đây) và xem phần phụ của ô nào có chiều rộng lớn hơn mức cần thiết. – Levi

2

Xem xét những hạn chế của tableview của bạn với các View. Vẽ đường viền ô, đường viền nhãn và đường viền bảng với các màu khác nhau để biết phần tử nào không hiển thị chính xác.

Ex:

#import <QuartzCore/QuartzCore.h> 

... 
cell.layer.border.width = 1; 
cell.layer.border.color = [UIColor blackColor].CGColor; 
+0

Xin chào @ tyt_g207, cảm ơn vì đã trả lời, tôi đã cập nhật câu hỏi ban đầu của mình với hai ảnh chụp màn hình từ chế độ xem Xcode 6 gỡ lỗi loại hiển thị cùng một điều. Vấn đề như bạn sẽ thấy là Simulator đang chạy một cái gì đó trông hơi khác với Xem Debugging và tôi không chắc chắn tại sao? – Realinstomp

+0

Nó phụ thuộc vào mục tiêu mà bạn chạy. Tôi cho rằng bạn đã sửa kích thước (trong Chỉ số Mô phỏng) để nội dung không được kéo dài tự động. Thêm một số NSLog() vào chương trình của bạn để hiển thị khung của View, TableView, Cells của bạn. Có một API NSStringFromCGRect() để xem từng kích thước khung hình. –

+0

Nghe hay đấy, tôi sẽ thử! – Realinstomp

0

Điều làm việc cho tôi để giải quyết các lượt xem bị cắt bớt là bỏ chọn "Constrain to margins" trong Auto Layout.

enter image description here

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