2012-09-05 38 views
6

Câu hỏi thực sự đơn giản ở đây. Làm cách nào để tạo chế độ xem như thế này? enter image description hereTạo chế độ xem lớp phủ nhấp qua

Nó phải che phủ người dùng lần đầu tiên chạy phần này của ứng dụng và bị xóa vĩnh viễn khi người dùng chạm vào nó. Tôi hiểu nó phải là một UIImageView, nhưng làm thế nào để bạn làm cho nó hoạt động và sau đó loại bỏ nó khỏi xem mãi mãi?

Trả lời

9

Bạn có thể thêm chế độ xem phụ ngay sau khi khởi chạy ứng dụng theo phương pháp didFinishLaunchingWithOptions của ứng dụng ủy nhiệm bằng cách sử dụng phương thức addSubView của lớp UIView. Dưới đây là một số đoạn mã về cách bạn có thể tiến hành:

- (BOOL)application:(UIApplication *)application 
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 

    UIImageView *imageView = [[UIImageView alloc] 
    initWithImage:[UIImage imageNamed:@"yourimage.png"]]; 
    [self.window addSubview:imageView]; 

    UITapGestureRecognizer * recognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)]; 
    recognizer.delegate = self; 
    [imageView addGestureRecognizer:recognizer]; 
    imageView.userInteractionEnabled = YES; 
    self.imageView = imageView; 
} 

- (void) handleTap:(UITapGestureRecognizer *)recognize 
{ 
    [self.imageView removeFromSuperView]; 
} 

Lưu ý rằng bạn sẽ cần một tài sản để tham khảo IMAGExem của bạn trong phương pháp handleTap.

+0

Xin cảm ơn! Làm việc như quyến rũ! –

+0

Tôi nhận được "Chỉ định cho 'id ' từ loại không tương thích 'AppDelegate *'" - bất kỳ lời khuyên nào? Cảm ơn! – Ernest

+0

bạn cần phải làm cho AppDelegate của bạn tuân thủ UIGestureRecognizerDelegate bằng cách tuyên bố một cái gì đó như thế này: yourAppDelegate() tiguero

1

Suy nghĩ của tôi sẽ được đặt biến NSUserDefault và kiểm tra nó trên applicationDidFinishLaunchingWithOptions hoặc một nơi khác trong ứng dụng của bạn có ý nghĩa. Bạn chỉ có thể đẩy một chế độ xem riêng biệt khi biến của bạn là true và false.

4

UIView có tất cả các phương pháp bạn cần, ví dụ:

  • Gọi [myView addSubview:imgView] thêm chế độ xem hình ảnh để giao diện hiện tại (myView)
  • Gọi [imgView removeFromSuperview] khi kết thúc (ví dụ trong phản ứng để khai thác hoặc sau một giờ)

Hãy chắc chắn rằng userInteractionEnabled tài sản của imgView đến NO để các điểm chạm được chuyển đến myView.

+0

tại sao không có subView xử lý tap? – tiguero

+1

Bạn có thể, nhưng câu hỏi yêu cầu hành vi "nhấp qua", vì vậy tôi cho rằng người đăng muốn thích chế độ xem nền để xử lý các lần chạm. –

+0

ok tiêu đề của anh ấy là sai lạc. Ông đã đề cập mặc dù: "Nó phải che phủ người dùng lần đầu tiên chạy phần này của ứng dụng và bị xóa vĩnh viễn khi người dùng chạm vào ứng dụng", vì vậy rõ ràng là anh ấy muốn nhấn để xuất hiện trên chế độ xem lớp phủ – tiguero

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