Tôi đang gặp khó khăn với setNeedsDisplay
. Tôi nghĩ rằng nó được cho là để kích hoạt các cuộc gọi của drawRect:
cho quan điểm mà nó được gọi là và hệ thống phân cấp dưới đây nếu nó nằm trong giới hạn của khung nhìn, nhưng tôi không thấy rằng đó là trường hợp. Đây là thiết lập của tôi:setNeedsDisplay không kích hoạt drawRect trong các bản xem trước như mong đợi
Từ đại biểu ứng dụng, tôi tạo chế độ xem có kích thước là hình vuông bao trùm chủ yếu toàn bộ màn hình bất động sản. Chế độ xem này được gọi là TrollCalendarView
. Không có nhiều điều xảy ra với TrollCalendarView
ngoại trừ một vòng quay được kích hoạt bởi la bàn.
Có 7 phần phụ của TrollCalendarView
được gọi là PlatformView
nhằm chứa các đối tượng vẽ 2D được sắp xếp quanh tâm TrollCalendarView
trong bố cục 7 mặt. Vì vậy, khi iPad được xoay, 7 lượt xem xoay sao cho chúng luôn được định hướng theo hướng hồng y.
Mỗi trong số PlatformView
các bản xem trước chứa 3 phần phụ được gọi là Tower
. Mỗi tháp chứa các đối tượng vẽ 2D được triển khai trong drawRect:
.
Vì vậy, tóm lại, tôi có TrollCalendarView
có trống drawRect:
và các bản xem trước PlatformView
và Platformview
-> Tháp mà mỗi công cụ có drawRect triển khai. Ngoài ra, Tower nằm trong giới hạn của Platform, và Platform nằm trong giới hạn của TrollCalendarView.
Trong TrollCalendarView
Tôi đã thêm trình nhận dạng swipe. Khi tôi vuốt, một thuộc tính được cập nhật và tôi gọi số [self setNeedsDisplay]
nhưng không có gì xảy ra. Tôi đã thêm các mục nhập NSLog vào phương thức drawRect:
trong mỗi chế độ xem này và chỉ có phương thức TrollCalendarView
drawRect:
được gọi. Trớ trêu thay, đó là chế độ xem có phương pháp drawRect
sẽ trống.
Không có tệp xib.
Tôi cần làm gì để đảm bảo phương pháp drawRect
trong các bản xem phụ khác được gọi? Có tài liệu nào đó mô tả tất cả các sắc thái có thể ảnh hưởng đến điều này không?
Tôi nhận ý tưởng đó từ các câu trả lời cho các câu hỏi tương tự ngay tại đây trên stackoverflow. Chỉ cần tìm kiếm subview setNeedsDisplay cho mẫu. Có một số. –
Tôi sẽ làm theo đề nghị này trừ khi tôi học theo cách khác. Nó ít nhất là phù hợp với phát hiện của tôi trong thử nghiệm. –
Thật không may có rất nhiều tiếng ồn trên SO và rất nhiều người mù mù. Các câu hỏi bạn đang xem có rất ít phiếu bầu, vì vậy có thể không nhiều người đã xem chúng hoặc có cơ hội sửa chúng. Nếu bạn mới bắt đầu, tài liệu của Apple sẽ đáng tin cậy hơn nhiều. –