2009-07-06 40 views
82

Có lẽ là một cái gì đó đơn giản, nhưng tôi không thể hiểu tại sao tôi không thể thay đổi kích thước một UIView trong một xib trong giao diện Builder.Không thể thay đổi kích cỡ UIView trong IB

Tôi đã tạo chế độ xem XIB mới trong xcode và trong trình kiểm tra kích thước, chiều rộng và chiều cao bị tắt và chuyển sang 320 x 460. Điều này thật lạ vì tôi có thể thay đổi kích thước cho hai chế độ xem khác (được liên kết với hai mục trên thanh tab khác).

Tôi không chắc liệu điều này có liên quan gì không nhưng tôi vừa cập nhật sdk lên 3.

Cảm ơn!

Trả lời

78

Tôi nghĩ rằng bạn không thể chỉnh sửa kích thước trong khi mô phỏng bất kỳ thành phần giao diện người dùng nào như thanh trạng thái trong Trình tạo giao diện. Bạn có thể thử tắt các phần tử mô phỏng nếu có bất kỳ yếu tố nào được bật. Không chắc chắn lý do tại sao điều này là, vì vậy sẽ đánh giá cao phản hồi từ bất cứ ai biết tại sao chính xác điều này là - phải có một lý do chính đáng.

+1

Cảm ơn đúng. Sau khi tôi nâng cấp xcode và IB thanh trạng thái được bật theo mặc định. Những người khác có nó ở off. –

+0

+1 cho cả hai bạn .. !! –

+1

Như tại Xcode 4.2, iOS 5.0.1 này đã thay đổi. Câu trả lời của tôi dưới đây giải thích làm thế nào điều này có thể đạt được. – lol

40

Phần bạn đang tìm kiếm nằm trên bảng Thanh tra đầu tiên (Command-1). Ngay ở trên cùng có một phần được gắn nhãn Các phần tử giao diện người dùng mô phỏng. Theo mặc định, thanh trạng thái đang bật. Bạn cần đảm bảo cả ba được đặt thành Không.

+2

Cảm ơn, những câu trả lời này đã giúp tôi tiết kiệm rất nhiều thời gian! Bất cứ ai biết tại sao IB làm điều này? – Gregor

+0

+1 Điều này đã khiến tôi phát điên! Cảm ơn! – Bogatyr

+0

Cảm ơn bạn đời. Tôi đã tìm cái đó. – natanavra

4

Chỉ cần chuyển đến thanh tra, chuyển đến bảng điều khiển đầu tiên (hoặc nhấn lệnh-1) rồi thay đổi các trường được đánh dấu Thanh trạng thái, Thanh trên cùng và Thanh đáy thành Không có trong phần được gọi là "Yếu tố giao diện người dùng mô phỏng". Bạn có thể cần nhấp vào hình tam giác nhỏ để hiển thị chúng.

0

Hài hước Tôi gặp sự cố tương tự. Tôi đã xóa tất cả các chế độ xem khỏi tệp xib và thêm lại chế độ xem. Đặt thanh trạng thái thành "không xác định" để thanh trạng thái không được cung cấp. Chế độ xem, khi được thêm, được tạo với x = 0, y = 0, w = 320 h = 460 thay vì (0,0,320,480) như tôi mong đợi. Sau khi thay đổi chiều cao thành 480 và kết nối nó với chủ sở hữu của tập tin và thay đổi màu sắc để làm cho nó đặc biệt liên quan đến nền. Tôi cho rằng có một dải màu trắng giữa đầu màn hình và khung cảnh. tôi tăng cường mã của tôi với:

#define RECTLOG(rect) (NSLog(@"" #rect @" x:%f y:%f w:%f h:%f", rect.origin.x, rect.origin.y, rect.size.width, rect.size.height)); 

trong viewDidLoad

 
- (void)viewDidLoad { 
    [super viewDidLoad]; 
    RECTLOG(self.view.frame); 
} 

Hóa ra rằng quan điểm là khi nó được nạp từ IB thực sự là (0, 20, 320, 480) Là một công trình xung quanh Tôi đặt lại khung của khung nhìn với self.view.frame = CGRectMake (0, 0, 320, 480);

Tôi đang sử dụng IB 3.2.5

Tôi rất muốn biết một chút khắc phục cho vấn đề này.

+3

FYI, bạn có thể sử dụng NSStringFromCGRect (rect) để lấy chuỗi in được đại diện cho CGRect. – Berry

+0

Đó là một FYI tuyệt vời, tôi đã kiểm tra nó, và bạn thực sự có thể nhận được một chuỗi giá trị từ một CGPoint và CGSize quá! rất nấu ăn, cảm ơn. – FierceMonkey

1

Tôi đã nhận thấy rằng UIView được tạo tự động khi tạo tệp xib không thể thay đổi kích cỡ từ bảng điều khiển kích thước hoặc tay cầm cạnh.

Tất cả những gì tôi đã làm là thêm một UIView khác và kéo tất cả mọi thứ từ UIView cũ sang UIView cũ của tôi rồi xóa ảnh cũ.

Nó giải quyết vấn đề cho tôi nhưng có, tôi nghĩ rằng có một vấn đề cơ bản với trình xây dựng giao diện cho Apple để giải quyết (ai đó sửa tôi nếu tôi sai).

Tôi đang sử dụng Trình tạo giao diện tích hợp XCode 4.

25

Tại Xcode 4.2, iOS 5.0.1, các số liệu mô phỏng mặc định bao gồm mô phỏng thuộc tính 'kích thước' của UIViewControllers thành 'Inferred'

Nếu bạn thay đổi thuộc tính này thành 'Freeform' thì bạn có thể thay đổi kích thước UIView chứa trong UIViewController đồng thời mô phỏng thanh trạng thái (hoặc bất kỳ khác của các mô phỏng cho rằng vấn đề)

+1

Thuộc tính kích thước hiện mặc định là "Retina 4 Toàn màn hình", nhưng thay đổi thành "Freeform" vẫn hoạt động. –

63

để đạt được điều đó trong XCode 4.6.3/5.0.2 bạn cần phải làm theo hình dưới đây:

  1. dưới 'file Inspector' -> untick Use Auto Layout
  2. Nhấp vào Thuộc tính S cử tri & Chọn Freeform cho Kích

này là cần thiết khi tạo một headerView cho một tableView

enter image description here

0

tôi sắp xếp nó ra theo một cách khác ...

mở xib của bạn với trình chỉnh sửa văn bản yêu thích của bạn và chỉnh sửa dòng này

 <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="CompassViewController"> 

CompassViewController là tên lớp bạn đang cố gắng liên kết nib/xib của bạn với.

Chỉ cần chỉnh sửa tên lớp học của bạn với tên lớp chính xác và bạn đã hoàn tất;)

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