2012-11-15 56 views
5

Tôi rất mới với Mục tiêu C và x-code. Tôi mới bắt đầu học nó tuần trước. xin lỗi nếu câu hỏi quá đơn giản.Khoảng thời gian trong mục tiêu C

Tôi đang làm một trò chơi giống như một cuốn tiểu thuyết trực quan vì vậy ứng dụng dựa trên bảng rất đơn giản và câu chuyện của nó, nhưng tôi có một câu hỏi liên quan đến việc hiển thị các lựa chọn của tôi. Tôi muốn các lựa chọn xuất hiện sau khi cảnh cắt của tôi kết thúc. là có cách nào tôi có thể thêm một cái gì đó như phá vỡ khoảng thời gian để họ chỉ xuất hiện sau một thời gian nhất định. có thể một số xin vui lòng hướng dẫn tôi làm thế nào để đi về nó.

Trả lời

1

Bạn có thể sử dụng NSTimer:

[NSTimer scheduledTimerWithTimeInterval:2.0f 
           target:self 
           selector:@selector(displayChoiceTimerFired:) 
           userInfo:nil 
           repeats:NO]; 

này sẽ sắp xếp một bộ đếm thời gian sẽ thực hiện phương pháp displayChoiceTimerFired: sau 2 giây. (Đối số của phương pháp đó là bộ đếm thời gian riêng của mình.)

Hoặc bạn cũng có thể sử dụng NSObject 's perform phương pháp:

[self performSelector:@selector(displayChoice:) withObject:nil afterDelay:2.0f]; 
+0

nhưng tôi vẫn thêm các đối tượng trong xây dựng giao diện người dùng bình thường đúng nhưng họ sẽ được hiển thị muộn. nó sẽ tốt hơn nếu tôi tạo một cửa sổ khác? –

+0

Hoặc tạo giao diện người dùng mới theo chương trình khi bộ hẹn giờ kích hoạt. Hoặc làm cho chúng ẩn trên Interface Builder và sau đó hiển thị khi bộ đếm thời gian kích hoạt bằng 'object.hidden = NO'. – DrummerB

+0

thx rất nhiều. điều đó thực sự hữu ích –

1

Tùy thuộc vào cách bạn đang hiển thị đoạn phim cắt cảnh của bạn, cách an toàn hơn để hiển thị các Các yếu tố giao diện người dùng sẽ bằng cách nào đó kích hoạt hành động khi cảnh cắt của bạn kết thúc. Vấn đề với việc thực hiện NSTimer tôi có thể thấy trước là nếu vì lý do nào đó, cảnh cắt của bạn mất nhiều thời gian để chơi hơn khoảng thời gian NSTimer của bạn được đặt thành, thì các thành phần giao diện người dùng của bạn được hiển thị sớm. Chỉ cần hai xu của tôi trên một khác nhau, nhưng những gì tôi tin là một cách tiếp cận thanh lịch hơn.

1
[self performSelector:@selector(displayChoice:) withObject:nil afterDelay:1.0]; 

Bạn có thể sử dụng phương pháp này ... nơi mà sau khi trì hoãn là số giây

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