Video: Cách dùng đa nhiệm iPad trên iOS 11 | Tinhte.vn 2025
Khi tạo ứng dụng iPad, bạn cần bao gồm mã kiểm soát chế độ xem trong ứng dụng đó Ứng dụng iPad sau đây được thiết kế để hiển thị các từ cuộn xuống màn hình Sau khi mở tệp DeepThoughtsViewController m để xuất hiện trong trình soạn thảo văn bản, bạn cần chèn mã bằng đậm (mã không in đậm):
#import "DeepThoughtsViewController. h" #import " Hằng số h " @dừng triển khai DeepThoughtsViewController @ tổng hợp tốc độ, imageView; #pragma mark - #pragma mark Xem chu kỳ sống / * // Trình khởi tạo được chỉ định Ghi đè để thực hiện cài đặt cần thiết trước khi chế độ xem được tải - (id) initWithNibName: (NSString *) nibNameOrNil bó: (NSBundle *) nibBundleOrNil {if (self = [super initWithNibName: nibNameOrNil bó: nibBundleOrNil]) {/ Custom initia lization} return self;} * / / * // Triển khai loadView để tạo lập trình xem một cách phân cấp theo chương trình, mà không cần sử dụng nib. - (void) loadView {} * / / * // Triển khai viewDidLoad để thiết lập bổ sung sau khi tải chế độ xem, thường là từ một nib. - (void) viewDidLoad {[super viewDidLoad];} * / - (void) viewDidLoad { [super viewDidLoad]; [NSTimer scheduleTimerWithTimeInterval:. 5 mục tiêu: Tự chọn: @selector (onTimer) userInfo: không lặp lại: YES]; " Peace Love Groovy Music " forKey: kWordsOfWisdom] Nếu fallingWords = @ " Hòa bình Love Groovy Âm nhạc " ; } else { fallingWords = [[NSUserDefaults standardUserDefaults] stringForKey: kWordsOfWisdom]; } if (! [[NSUserDefaults standardUserDefaults] objectForKey: kSpeed]) { [NSUserDefaults standardUserDefaults] setDouble: 10. 0 forKey: kSpeed]; tốc độ = kMaxSpeed-10. 0;} khác { tốc độ = kMaxSpeed - [[NSUserDefaults standardUserDefaults] doubleForKey: kSpeed]; } } #pragma mark - #pragma mark Hiệu ứng - (void) onTimer { UILabel * fallingImageView = [[UILabel alloc] initWithFrame: CGRectMake (0, 0, 100, 30)]; fallingImageView. văn bản = fallingWords; fallingImageView. textColor = [UIColor purpleColor]; fallingImageView. font = [UIFont systemFontOfSize: 30]; fallingImageView. backgroundColor = [UIColor clearColor]; fallingImageView. điều chỉnhFontSizeToFitWidth = CÓ; int startX = vòng (ngẫu nhiên ()% 400); int endX = vòng (ngẫu nhiên ()% 400); // tốc độ rơi xuống gấp đôi tốc độ ngẫu nhiên = (1 / vòng (ngẫu nhiên) (% 100) +1) * tốc độ; // kích thước hình ảnh; quy mô gấp đôiH = (1 / vòng (ngẫu nhiên () 100%) 1) * 60; double scaleW = (1 / vòng (ngẫu nhiên () 100%) 1) * 200; [tự.xem addSubview: fallingImageView]; fallingImageView. frame = CGRectMake (startX, -100, scaleW, scaleH); fallingImageView. alpha =. 75; [UIView beginAnimations: nil context: fallingImageView]; [UIView setAnimationDuration: randomSpeed]; [UIView setAnimationDelegate: Tự]; [UIView setAnimationDidStopSelector: @selector (animationDone: hoàn thành: ngữ cảnh:)]; fallingImageView. frame = CGRectMake (endX, tự xem khung, kích thước, chiều cao, scaleW, scaleH); [UIView commitAnimations]; Animation9 đã hoàn thành: (NSNumber *) hoàn thành bối cảnh: (id) context (UIImageView * fallingImageView = context; [fallingImageView removeFromSuperview]; [fallingImageView release]; } #pragma mark - #pragma mark Kiểm soát - (IBAction) settings { } #pragma mark - #pragma mark Định hướng // Ghi đè để cho phép định hướng ngoài định hướng chân dung mặc định. - (BOOL) shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation) interfaceOrientation {return YES;} #pragma mark - #pragma mark Quản lý bộ nhớ - (void) didReceiveMemoryWarning {// Phát hành chế độ xem nếu nó không có một siêu nhân. [super didReceiveMemoryWarning]; // Phát hành bất kỳ dữ liệu lưu trữ, hình ảnh, vv mà không sử dụng.} - (void) viewDidUnload {// Phát hành các bản ghi lại được giữ lại của khung nhìn chính. // e. g. tự. myOutlet = nil;} - (void) dealloc {[super dealloc];} @end Đây là một phân tích của mã bạn thêm:Câu lệnh đầu tiên mà bạn thêm nhập khẩu Constants. h. Bây giờ bạn có thể sử dụng bất kỳ phím nào bạn thiết lập với NSUserDefaults trong mã tiếp theo để lấy cài đặt người dùng. Mục tiêu-C tạo ra các phương thức accessor bạn cần cho bạn bất cứ khi nào bạn đưa ra một câu lệnh @synthesize; câu lệnh trong đoạn mã trước tạo một phương thức accessor cho mỗi khai báo @property (tốc độ và imageView).
-
Tin nhắn viewDidLoad được gửi ngay sau khi đã tải được chế độ xem từ tệp nib (tệp.ibxib mà bạn có thể sửa đổi trong Trình tạo Giao diện). Đây là nơi bạn chèn mã để xem khởi tạo, trong trường hợp này có nghĩa là hiển thị từ rơi xuống của DeepThoughts. Phương pháp viewDidLoad bạn chèn bắt đầu bằng cách thiết lập một bộ đếm thời gian cho khoảng thời gian giữa mỗi lần hiển thị các từ rơi.
-
-
Tiếp theo, mã kiểm tra để xem liệu cài đặt kWordsOfWisdom đã được chuyển sang NSUserDefaults.
-
Mã di chuyển sở thích của người dùng vào NSUserDefaults chỉ sau khi ứng dụng chạy lần đầu tiên. Nếu các cài đặt chưa được di chuyển vào NSUserDefaults, mã sử dụng giá trị ưu tiên ban đầu ("Peace Love Groovy Music") cho từ khoá declWords. Nếu cài đặt đã được chuyển vào NSUserDefaults, mã sẽ đọc chúng và sau đó sẽ đặt từ khoá xuống bất kỳ tùy chọn nào của người dùng. Mã sẽ lặp lại kiểm tra này với cài đặt tốc độ.
Bạn sử dụng standardUserDefaults (một phương thức lớp NSUserDefaults) để truy cập vào cài đặt mặc định của người dùng chuẩn và bạn có thể lưu trữ dữ liệu ở đó.Phần đánh dấu #pragma có tiêu đề Controls bao gồm phương pháp cài đặt trình giữ chỗ để kết nối nút Thông tin Nóng với trình điều khiển chế độ xem. Đây là phương pháp hành động sử dụng vòng loại IBAction.
-
Kết nối bộ đếm thời gian với bản vẽ thực tế của màn hình là phương pháp onTimer. Lớp UILabel thực hiện chế độ xem văn bản chỉ đọc. Bạn có thể sử dụng lớp này để vẽ một hoặc nhiều dòng văn bản tĩnh. Trong trường hợp này, khối mã sử dụng phương thức initWithFrame với CGRectMake để tạo ra một hình chữ nhật, với tọa độ x và tọa độ y của điểm gốc hình chữ nhật tại (0, 0) và chiều rộng và chiều rộng được chỉ định (100,30).
-
Mã chuyển đổi chuỗi rơi xuống để giảmImageView để hiển thị; thiết lập màu văn bản, phông chữ và màu nền; và điều chỉnh kích thước phông chữ cho chiều rộng. Các thuộc tính font và textColor áp dụng cho toàn bộ chuỗi văn bản.
Đoạn mã tiếp theo sử dụng hàm ngẫu nhiên cho các điểm bắt đầu và kết thúc (startX và endX), cho tốc độ, và cho chiều rộng (scaleW) và chiều cao (scaleH) cho fallingImageView.
-
Phương thức beginAnimations: context: bắt đầu khối hoạt hình và phương thức commitAnimations kết thúc khối. Trong khối, mã sẽ đặt giá trị thuộc tính để thực hiện các thay đổi trực quan bao gồm hình ảnh động.
-
Phương thức setAnimationDuration thiết lập thời lượng hoạt hình, và setAnimationDidStopSelector thiết lập thông báo gửi đến các đại biểu hoạt hình khi hoạt hình ngừng. Đại biểu hoạt hình là animationDone, sử dụng removeFromSuperview (một phương thức instance của lớp UIView) để remove fallImageView và sau đó sử dụng release (một phương thức instance của lớp NSAutoreleasePool) để giải phóng fallImageView.
-
Cuối cùng, mã này có hai câu lệnh # pragma mark để đánh dấu phần là Định hướng và hai câu lệnh # pragma mark trên phương thức didReceiveMemoryWarning để đánh dấu mục đó là Quản lý bộ nhớ.
