Tôi thường tạo các chế độ xem tùy chỉnh theo cách lập trình và để chúng được khởi tạo theo chương trình cũng như các phương thức init tùy chỉnh (ví dụ: initWithFrame: SomeParam: OtherParam). Có thể sử dụng các chế độ xem tùy chỉnh đó kết hợp với tệp xib không? Tức là, có một tệp xib cha mẹ có nhiều chế độ xem tùy chỉnh khác nhau dưới dạng các bản xem phụ trong đó các bản xem trước này có thể cần sử dụng một phương thức init khác?Chế độ xem tùy chỉnh iOS trong các tệp xib
Trả lời
Nếu bạn thêm quan điểm tùy chỉnh thành một file xib, bạn có thể không sử dụng một initializer tùy chỉnh. Tất cả chúng sẽ được khởi tạo bằng cách sử dụng initWithCoder
.
Thông thường bạn sẽ thực hiện bất kỳ thiết lập nào theo phương thức chung được gọi từ đó hoặc trong awakeFromNib
.
Nếu bạn cần đặt bất kỳ thuộc tính tùy chỉnh nào trên chế độ xem có nguồn gốc từ bên ngoài, hãy thực hiện trong viewDidLoad
bộ điều khiển chế độ xem của bạn.
tất nhiên là có thể. kéo uiview vào xib không nằm trong khung nhìn mặc định. sau đó tạo IBOutlet UIView *myCustomView;
và sau đó kết nối với chế độ xem khác. khi u muốn thể hiện quan điểm này thêm này như [self.view addSubview:myCustomView];
khi muốn loại bỏ nó
[myCustomView removeFromSuperView];
Vậy ... hàm initWithSomeValue: value như thế nào? – Carina
Điều này sẽ không hoạt động nếu bạn muốn chia sẻ nói chế độ xem tiêu đề tùy chỉnh trên nhiều tệp XIB ... Bạn sẽ phải xác định lại chính xác từng xib – LightningStryk
Nhận xib của chế độ xem được khởi tạo theo cách thông thường và sử dụng tham chiếu thực hiện cài đặt tùy chỉnh. phần này có thể được đặt trong phương thức init như this-
-(void)initfunction{
UIView *containerView = [[[NSBundle mainBundle] loadNibNamed:@"myView" owner:self options:nil] lastObject];
containerView.property1 = xyz;//Customization
containerView.property2= abc;//Customization
containerView.frame = CGRectMake(x,y,z,p);//Customization
[rootView addSubview:containerView];
}
điểm là khi chúng ta sử dụng một xib chúng ta không khởi tạo một cách rõ ràng, các xib
chức năng tiện ích trả về một đối tượng khởi tạo (của UIView
), sau khi người ta có UIView
đối tượng, người đó có thể sử dụng đối tượng được khởi tạo như một đối tượng thông thường để thực hiện các thay đổi tùy chỉnh khác.
Lớp UINib (iOS) và NSNib (OS X) cung cấp hiệu suất tốt hơn trong các trường hợp bạn muốn tạo nhiều bản sao nội dung của một tệp nib. Quá trình tải nib bình thường liên quan đến việc đọc tệp nib từ đĩa và sau đó instantiating các đối tượng nó chứa. Tuy nhiên, với các lớp UINib và NSNib, tệp nib được đọc từ đĩa một lần và nội dung được lưu trữ trong bộ nhớ. Bởi vì chúng nằm trong bộ nhớ, việc tạo các bộ đối tượng liên tiếp tốn ít thời gian hơn vì nó không yêu cầu truy cập đĩa.
- Tạo một tài khoản xem tập tin xib: Nhấp chuột phải vào dự án -> New File -> User Interface -> View (ví dụ như bạn sẽ có "MyView.xib")
- Điền quan điểm sử dụng giao diện Builder
Thêm phương pháp tiếp theo để bạn thành phần cha mẹ
static UINib *nib = nil; - (UIView*)createNewViewFromNib: (NSString *)nibFileName { if(nib == nil) { nib = [UINib nibWithNibName:nibFileName bundle:nil ]; } // Unarchiving objects from the nib. You can do it multiple times to create a number of objects from same nib. NSArray* topLevelObjs = [nib instantiateWithOwner:self options:nil]; if (topLevelObjs == nil) { NSLog(@"Warning! Could not load nib file.\n"); return nil; } // We have only one view in the nib. return [topLevelObjs objectAtIndex:0]; }
Sử dụng dòng tiếp theo của mã để nhanh chóng bạn xem với đối tượng nib tái sử dụng:
UIView *item = [self createNewViewFromNib:@"MyView"]; // [self.view addSubview:item];
- 1. iOS: Chế độ xem tùy chỉnh với xib
- 2. Gặp sự cố khi tải chế độ xem tùy chỉnh từ xib khác xib
- 3. Cách thêm chế độ xem tùy chỉnh vào chế độ xem XIB đã được xác định trong monotouch
- 4. ios: Phân đoạn tùy chỉnh giữa hai chế độ xem trong chế độ ngang
- 5. Tạo chế độ xem tùy chỉnh bằng cách sử dụng xib
- 6. Khởi tạo chế độ xem với initWithCoder tùy chỉnh
- 7. Chế độ xem thông báo tùy chỉnh
- 8. Chế độ xem ảnh tùy chỉnh
- 9. Chế độ xem tùy chỉnh trong bố cục xml
- 10. Chế độ xem trong Nhóm tùy chỉnh Chế độ xem không hiển thị
- 11. Chế độ xem đầu vào của UITextView trên iOS 7
- 12. cách thêm chế độ xem chú dẫn tùy chỉnh trong chế độ xem bản đồ
- 13. Nhiều Chế độ xem trong một XIB - iPhone SDK
- 14. Chế độ xem tùy chỉnh trong SecureSocial trong Java
- 15. ios các bước để tạo UITableViewCell tùy chỉnh với tệp xib
- 16. Nền tùy chỉnh trong NSTableView dựa trên chế độ xem
- 17. Chống răng cưa lạ trong chế độ xem tùy chỉnh
- 18. Lấy bối cảnh bên trong chế độ xem tùy chỉnh?
- 19. Cách tạo chế độ xem web tùy chỉnh trong Android?
- 20. Android findViewById() trong Chế độ xem tùy chỉnh
- 21. Nhúng Chế độ xem tùy chỉnh bên trong một WebView
- 22. Android: Nhiều chế độ xem cho chế độ xem tùy chỉnh với bố cục hiện tại
- 23. Cách tải tệp xib cho ô trong chế độ xem bảng trong iphone
- 24. iOS - Chế độ xem IB
- 25. Chế độ xem xóa iOS
- 26. Tôi làm cách nào để tùy chỉnh chế độ xem cảnh báo trên iOS?
- 27. Chế độ xem tùy chỉnh ca cao cho NSMenuItem
- 28. Phân đoạn Storyboard tùy chỉnh cho chế độ xem Popping?
- 29. Bắt đầu tạo chuyển đổi chế độ xem tùy chỉnh
- 30. Cách tạo Chế độ xem tùy chỉnh đơn giản?
Nếu tôi cần làm sth trước khi viewDidLoad của trình điều khiển chế độ xem của tôi, cách thực hiện nó? Ví dụ ... Chế độ xem của tôi được sử dụng để hiển thị một trang của một cuốn sách.Không có phương thức init tùy chỉnh, chẳng hạn như trang initWithPage: đồng thời tôi cũng sử dụng bảng phân cảnh. – Carina
Trước khi viewDidLoad, chế độ xem của bạn không tồn tại. Chỉ cần di chuyển thiết lập bạn thực hiện trong initWith ... sang một phương thức khác và thực hiện bất kỳ thay đổi nào bạn cần ở đó, sau khi bạn đặt thuộc tính. – jrturton