2012-04-16 43 views
5

Tôi đang làm việc trong Xcode 4.2 và đang phát triển một ứng dụng mà tôi muốn màn hình trình đơn sử dụng Chế độ xem phân tách. Thực sự, tất cả những gì tôi cần cho Split View Controller là chia một số tùy chọn menu thành khung bên trái và khung bên phải. Tôi muốn có thể thiết lập kích thước tùy chỉnh cho bộ điều khiển chế độ xem chính và chi tiết, nhưng dường như không có gì hoạt động đối với tôi. Tôi đã thử cập nhật kích thước khung hình cho mỗi bộ điều khiển chế độ xem bằng mã như sau:Thay đổi kích thước bộ điều khiển chế độ xem chính và chi tiết trong bộ điều khiển chế độ xem chia tách?

[self.view setFrame:CGRectMake(0, 0, 768, 502)]; 

trong chế độ xemChức năng tải xuống, nhưng điều đó dường như không ảnh hưởng đến bất kỳ thứ gì.

Có cách nào để đặt kích thước tùy chỉnh cho bộ điều khiển chế độ xem chính và chi tiết của bộ điều khiển chế độ xem chia tách mà không tạo bộ điều khiển chế độ xem trong tệp AppDelegate.m không? Tôi muốn có thể chỉnh sửa từng bộ điều khiển chế độ xem trong bảng phân cảnh vì chúng là màn hình menu có nhiều nút và như vậy.

Trả lời

10

Chỉnh sửa: Trong iOS 8+, độ rộng tương đối có thể được thay đổi bằng cách chỉ định thuộc tính tối thiểu/maximumPrimaryColumnWidth hoặc ưa thíchPrimaryColumnFraction.

Câu trả lời dưới đây là vẫn còn đúng cho iOS < 8:


Bạn không thể thay đổi kích thước cho một bộ điều khiển chia điểm.

Xem ở đây: http://developer.apple.com/library/ios/#featuredarticles/ViewControllerPGforiPhoneOS/Introduction/Introduction.html

"Lớp UISplitViewController là một bộ điều khiển xem thùng chứa để quản lý hai panes thông tin Các cửa sổ đầu tiên có chiều rộng cố định 320 điểm và một chiều cao phù hợp với chiều cao cửa sổ có thể nhìn thấy thứ hai.. cửa sổ lấp đầy không gian còn lại. "

+0

Hmm, ok, cảm ơn. Có cách nào khác để tôi có thể sử dụng không? Tất cả những gì tôi thực sự cần là một khung nhìn với hai ô dọc, nơi tôi có thể chọn kích thước cho mỗi khung. – generaltsow

+0

Bạn chỉ có thể tạo một chế độ xem lớn với hai chế độ xem và chỉ định chế độ xem của từng chế độ xem. –

4

Sử dụng MGSplitViewController. Nó cung cấp API tương tự cho UIViewController, nhưng cung cấp các tính năng bổ sung, chẳng hạn như vị trí tách, đó là những gì bạn cần.

+0

Có phiên bản mới hơn của bộ điều khiển chế độ xem này không? Có vẻ như ngày và không được hỗ trợ. Nó chạy trên iOS7, tuy nhiên. – fatuhoku

+0

@fatuhoku Tôi không chắc chắn, tôi loại dừng lại sau 'MGSplitViewController' và xây dựng wrapper của riêng tôi cho 'UISplitViewController' cho phép tôi đạt được những gì tôi cần. Thành thật mà nói, nếu tôi đã phải làm một bộ điều khiển chia tách bây giờ, tôi sẽ làm một tùy chỉnh mới thay vì sử dụng 'MGSplitViewController', vì nó thực sự khá dễ thực hiện với ngăn chặn bộ điều khiển xem cha/con. –

+0

Đúng - sử dụng chế độ xem vùng chứa đã hoạt động tốt cho tôi. Tôi đã không sử dụng MGSplitViewController cuối cùng. – fatuhoku

-1
- (CGFloat)splitView:(NSSplitView *)splitView constrainMinCoordinate:(CGFloat)proposedMinimumPosition ofSubviewAt:(NSInteger)dividerIndex; 
{ 

    return proposedMinimumPosition + 238; 
} 

- (CGFloat)splitView:(NSSplitView *)splitView constrainMaxCoordinate:(CGFloat)proposedMaximumPosition ofSubviewAt:(NSInteger)dividerIndex; 
{ 
    return proposedMaximumPosition - 200; 
} 

trước khi phương pháp đại biểu trên thêm [splitView addDelegate:self];

+0

Các phương pháp này dành cho Mac, với NSSplitViewDelegate. OP không chỉ định ứng dụng Mac hoặc iOS, tuy nhiên, họ có thẻ cho biết 'uisplitviewcontroller' dành cho iOS. – cnotethegr8

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