Trang Chủ Xã hội Truyền thông Cách theo dõi số lần chạm trong ứng dụng iOS của bạn - núm vú

Cách theo dõi số lần chạm trong ứng dụng iOS của bạn - núm vú

Video: 9 tính năng ẩn cực hay trên iPhone X mà Apple không nói 2025

Video: 9 tính năng ẩn cực hay trên iPhone X mà Apple không nói 2025
Anonim

Thật tuyệt khi có thể kéo một chiếc xe hơi và đặt nó ở bất cứ đâu trên màn hình trong ứng dụng iOS của bạn. Tại đây, bạn sẽ tìm hiểu cách tạo mã cho việc kéo một đối tượng, cũng như cách thức hoạt động trên một thiết bị iOS.

Sự chạm nhẹ của một ngón tay (hoặc nhấc nó lên từ màn hình) thêm một sự kiện chạm vào hàng đợi sự kiện của ứng dụng, nơi nó đóng gói (chứa) trong một đối tượng UIEvent. Một đối tượng UITouch tồn tại cho mỗi ngón tay chạm vào màn hình, cho phép bạn theo dõi các chạm cá nhân.

Các liên lạcBegan: withEvent: tin nhắn được gửi khi một hoặc nhiều ngón tay chạm vào trong chế độ xem. Thông báo này là một phương pháp của lớp cha của TestDriveController, UIResponder, từ đó bộ điều khiển chế độ xem có nguồn gốc.

Khi người dùng tiếp tục chạm vào màn hình bằng ngón tay của mình, hệ thống báo cáo các thay đổi cho mỗi ngón tay trong đối tượng UITouch tương ứng, do đó gửi chạm vàoMoved: withEvent: tin nhắn. Dấu chạmEnded: withEvent: thông báo được gửi khi một hoặc nhiều ngón tay nhấc khỏi chế độ xem có liên quan. Các touchesCancelled: vớiEvent: tin nhắn, mặt khác, được gửi khi một sự kiện hệ thống (như một cảnh báo bộ nhớ thấp) hủy bỏ một sự kiện cảm ứng.

Trong ứng dụng này, bạn chỉ cần quan tâm đến hai phương pháp đầu tiên được mô tả.

Để bắt đầu quá trình phản hồi cho một sự kiện chạm, thêm một biến cá thể mới (được in đậm) vào TestDriveController. m tập tin thực hiện.

@interface TestDriveController () {AVAudioPlayer * backgroundAudioPlayer; SystemSoundID burnRubberSoundID; BOOL touchInCar; } -d

Tiếp theo, thêm touchesBegan: method vào TestDriveController. m để bắt đầu theo dõi các chạm. (Bạn đang thực sự trọng hơn phương pháp này vì UIViewController kế thừa nó từ lớp cơ sở UIResponder.)

- (void) touchesBegan: (NSSet *) chạm vớiEvent: (UIEvent *) event {UITouch * touch = [touches anyObject]; nếu (CGRectContainsPoint (khung xe tự, [touch locationInView: self. view])) touchInCar = CÓ; else {touchInCar = KHÔNG; Như đã đề cập trước đó, touchesBegan: withEvent: message được gửi khi một hoặc nhiều ngón tay chạm vào trong một khung nhìn. Các chạm vào bản thân được chuyển đến phương pháp trong một đối tượng NSSet - một bộ sưu tập không có thứ tự của các phần tử riêng biệt.

Để truy cập một đối tượng trong NSSet, sử dụng phương thức anyObject - nó trả về một trong các đối tượng trong tập hợp. Đối với mục đích của chúng tôi ở đây, bạn giả định chỉ một đối tượng - nhưng bạn có thể tự mình khám phá vấn đề này để bạn có thể hiểu cách xử lý các khả năng bổ sung.

Đoạn mã dưới đây chỉ ra cách thiết lập phương thức anyObject:

UITouch * touch = [touches anyObject];

Tiếp theo, mã xác định xem sự kiện chạm của người dùng có ở chế độ xem Xe (UIImage):

if (CGRectContainsPoint (self.xe hơi. khung, [touch locationInView: self. view]))

CGRectContainsPoint là một chức năng trả về YES khi một hình chữ nhật (xem tọa độ) có chứa một điểm. Bạn chỉ định khung xe là hình chữ nhật:

tự. xe hơi. frame

và bạn xác định điểm bằng cách gửi vị tríInView: tin nhắn đến số liên lạc:

locationInView: tự. xem

locationInView: trả về vị trí hiện tại của máy thu trong hệ tọa độ của khung nhìn đã cho. Trong trường hợp này, bạn đang sử dụng chế độ xem Chính, nhưng có thể bạn muốn thay đổi chế độ xem nếu bạn đang cố xác định vị trí trong một chế độ xem khác. Có thể người dùng chạm vào bàn đạp xăng itty-bitty.

Nếu xác định rằng liên lạc là ở trong xe, bạn chỉ định YES cho biến thể Ví dụIncar; nếu không, bạn chỉ định KHÔNG và chuyển tiếp thông điệp lên chuỗi trả lời. Bạn sử dụng touchInCar sau để xác định liệu người dùng đang kéo xe xung quanh hay chỉ cần chạy ngón tay của mình trên màn hình.

Thực hiện mặc định của touchesBegan: không làm gì. Tuy nhiên, các lớp con có nguồn gốc trực tiếp từ UIResponder, đặc biệt là UIView, chuyển tiếp thông điệp lên chuỗi trả lời. Để chuyển tiếp thư đến người trả lời tiếp theo, hãy gửi thông báo tới siêu (thực hiện lớp cha).

Nếu bạn ghi đè lên chạm vàoBegan: withEvent: không gọi siêu (mẫu sử dụng phổ biến), bạn cũng phải ghi đè các phương pháp khác để xử lý sự kiện chạm, nếu chỉ là triển khai còn sơ khai (trống).

Nhiều lần chạm được tắt theo mặc định. Để cho phép ứng dụng của bạn nhận được nhiều sự kiện chạm, bạn phải đặt thuộc tính multipleTouchEnabled của thể hiện xem tương ứng thành YES.

Khi người dùng di chuyển chiếc xe xung quanh màn hình (có thể nói

zoom zoom cho chính họ), ứng dụng của bạn liên tục được gửi chạm vàoMoveed: message. Thêm mã trong Liệt kê 10-13 vào TestDriveController. m để ghi đè lên phương pháp đó, sẽ cho phép bạn di chuyển chiếc xe đến ngón tay của người dùng. - (void) touchesMoved: (NSSet *) chạm vớiEvent: (UIEvent *) event {if (touchInCar) {UITouch touch = [chạm vào bất kỳ một đối tượng nào]; tự. xe hơi. center = [touch locationInView: tự. xem];} khác [siêu touchesMoved: chạm vớiEvent: sự kiện];}

Nếu chạm đầu tiên ở chế độ xem Xe (touchInCar là YES), bạn chỉ định thuộc tính trung tâm của ô tô cho tọa độ cảm ứng. Khi bạn gán một giá trị mới cho thuộc tính trung tâm, vị trí của chế độ xem sẽ được thay đổi ngay lập tức. Nếu không, bạn bỏ qua liên lạc và chuyển tiếp các tin nhắn lên dây đáp ứng.

Thật thú vị khi quan sát thấy rằng khi bạn đặt xe bên cạnh nút, nó sẽ di chuyển dưới nút đó khi bạn chạm vào nút Kiểm tra. Tính năng này minh họa cấu trúc phụ.

Thử nghiệm với việc di chuyển chiếc xe xung quanh và sau đó sử dụng nút Kiểm tra. Nếu có bất cứ điều gì sai trái với các công thức của bạn để định vị chiếc xe trong Thử nghiệm, bạn sẽ nhìn thấy nó khi chiếc xe bắt đầu từ một nơi khác.

Cách theo dõi số lần chạm trong ứng dụng iOS của bạn - núm vú

Lựa chọn của người biên tập

Làm thế nào để Thiết lập nhân viên trong QuickBooks Quá trình biên chế nâng cao - núm vú

Làm thế nào để Thiết lập nhân viên trong QuickBooks Quá trình biên chế nâng cao - núm vú

Sau khi bạn thành lập công ty của bạn thông tin cho bảng lương trong QuickBooks, bạn đã sẵn sàng để thiết lập nhân viên cho biên chế. Là một phần của quy trình Thiết lập biên chế nâng cao, QuickBooks hiển thị trang web nơi bạn có thể thêm nhân viên của mình. Bạn cũng có thể thêm nhân viên bằng cách hiển thị Trung tâm Nhân viên. (Chọn lệnh Employee → Employee Center và nhấp chuột ...

Làm thế nào để Thiết lập biểu đồ Tài khoản QuickBooks 2012 - núm vú

Làm thế nào để Thiết lập biểu đồ Tài khoản QuickBooks 2012 - núm vú

Biểu đồ tài khoản Danh sách trong QuickBooks 2012 là danh sách các tài khoản bạn sử dụng để phân loại thu nhập, chi phí, tài sản, nợ phải trả và số vốn chủ sở hữu của chủ sở hữu. Nếu bạn muốn xem chi tiết đơn hàng cụ thể của dữ liệu tài chính trên báo cáo, bạn cần một tài khoản cho chi tiết đơn hàng đó. Nếu bạn muốn ngân sách ...

Cách Thiết lập Máy in để in QuickBooks 2015 Hóa đơn - núm vú

Cách Thiết lập Máy in để in QuickBooks 2015 Hóa đơn - núm vú

Nếu bạn dự định in hóa đơn từ QuickBooks 2015, bạn chỉ cần cài đặt máy in hóa đơn một lần, nhưng bạn cần phải chỉ rõ một số quy tắc in ấn chung về hoá đơn. Các quy tắc này cũng áp dụng cho các bản ghi nhớ tín dụng và các đơn đặt hàng, bằng cách này. Để cài đặt máy in của bạn để in hóa đơn, làm theo các bước sau: Chọn ...

Lựa chọn của người biên tập

Hình ảnh Các chế độ phát trên một Canon EOS 70D - núm vú

Hình ảnh Các chế độ phát trên một Canon EOS 70D - núm vú

Một trong những điều tốt nhất về Canon EOS 70D của bạn có thể xem ảnh ngay sau khi bạn chụp chúng. Không còn đoán xem bạn có bị bắn mà bạn muốn hay cần thử lại; không còn lãng phí tiền bạc khi phát triển và in những bức ảnh bốc mùi. Để chuyển máy ảnh sang chế độ Phát lại, chỉ cần ...

Lựa chọn của người biên tập

Cách xem tab Thông báo của bạn trên Twitter - những con cần

Cách xem tab Thông báo của bạn trên Twitter - những con cần

Xem ai đang tương tác với bạn trên Twitter trực tiếp qua @replies và @mentions (Tweets để đáp ứng hoặc nói chung đề cập đến người dùng cá nhân), các mục yêu thích (cách thừa nhận hoặc đánh dấu trang Tweets) và retweets (chia sẻ nội dung đã được đăng bởi một người dùng Twitter khác). Yêu thích Nhấn vào biểu tượng ngôi sao, hoặc nút Video yêu thích, thêm vào Tweet của bạn ...

Sai lầm Twitter # 1: @reply versus @mention - núm vú

Sai lầm Twitter # 1: @reply versus @mention - núm vú

Mọi người dùng Twitter - mới và cũ - đã trở thành nạn nhân của sự nhầm lẫn giữa @reply versus @mention. Khi nhà phát triển thịnh vượng và nhà chiến lược nội dung Anum Hussein giới thiệu 21 mẹo đăng bài xã hội trên hội nghị INBOUND hàng năm, mẹo để hiểu sự khác biệt giữa @reply và @mention là số một ...

Mẹo vặt để xây dựng sự hiện diện của cá nhân trên Twitter

Mẹo vặt để xây dựng sự hiện diện của cá nhân trên Twitter

Twitter ban đầu phổ biến để giúp các cá nhân giữ liên lạc với bạn bè và người quen của họ qua các cập nhật nhỏ. Nhiều Twitterers cá nhân vẫn có xu hướng sử dụng Twitter theo cách này, cập nhật một vòng tròn gần gũi của bạn bè về những suy nghĩ và những sự kiện xảy ra trong cuộc sống của họ. Theo thời gian, bạn có thể theo kịp với những người mà bạn có thể không liên hệ ...