iOS UIEvent详解:触屏事件处理与类型

需积分: 10 7 下载量 159 浏览量 更新于2024-09-15 收藏 153KB PDF 举报
"UIEvent_Class是苹果手机触屏事件的存储类,用于处理和解决与触摸相关的各种问题。这个类在iOS系统中扮演着关键角色,它封装了用户在屏幕上进行的各种交互行为,如点击、滑动等。UIEvent类不仅包含事件的基本属性,还提供了获取事件类型、触摸点等相关信息的方法。" UIEventClassReference文档主要分为以下几个部分: 1. Overview:UIEvent对象代表iOS系统中的一个事件。主要分为三类事件:触摸事件(touch events)、运动事件(motion events)和远程控制事件(remote-control events)。触摸事件记录了用户的触摸屏幕行为,运动事件通常涉及设备的加速计和陀螺仪,而远程控制事件则允许响应者对象接收来自外部配件或耳机的指令,以管理音频和视频播放。 2. Tasks:这部分介绍了如何从事件中获取特定信息,包括获取触摸点、事件属性和事件类型。 3. Properties:UIEvent类具有几个重要的属性: - `subtype`:表示事件的子类型,例如不同类型的触摸行为。 - `timestamp`:记录事件发生的时间戳。 - `type`:标识事件的类型,如UIEventTypeTouchUpInside等。 4. InstanceMethods:UIEvent提供的实例方法包括: - `allTouches`:返回事件中所有的触摸点集合。 - `touchesForGestureRecognizer:`:根据手势识别器获取对应的触摸点。 - `touchesForView:`:获取与特定视图相关的触摸点。 - `touchesForWindow:`:获取与指定窗口相关的触摸点。 5. Constants:UIEvent定义了一些常量来表示事件的类型和子类型,如UIEventTypeTouch、UIEventSubtypeRemoteControlPlay等。 6. DocumentRevisionHistory:记录文档的历史修订,表明最后更新时间以及版权信息。 7. Inherits from 和 Conforms to:UIEvent类继承自NSObject,并遵循NSObject协议。这表示UIEvent对象具有Objective-C对象的所有基本功能。 8. Framework:UIEvent类属于UIKit框架,这是iOS应用开发的核心框架,提供了许多用于创建用户界面的类和工具。 9. Availability:UIEvent类从iOS 2.0版本开始可用,意味着它是早期iOS开发的重要组成部分。 10. Companion guide 和 Relatedsamplecode:相关指南是《Event Handling Guide for iOS》,提供了更详细的事件处理指南,而列出的示例代码(如CopyPasteTile、Formulaic、GKTank、GLPaint和oalTouch)可能包含了UIEvent的使用示例。 UIEvent类是iOS事件处理机制的关键,它使开发者能够有效地捕获和响应用户在触摸屏幕时的交互,从而实现丰富的用户界面交互功能。通过理解和使用UIEvent,开发者可以构建更加动态和响应式的移动应用。

static void battery_module_capture_process(battery_capture_type_t capture_type) { device_batt_info_t *p_batt = (device_batt_info_t *)store_driver_get(STORE_DATA_ID_BATT_INFO); device_mode_factory_t *p_mode = (device_mode_factory_t *)store_driver_get(STORE_DATA_ID_MODE_STATUS); if(capture_type == BATTERY_CAPTURE_TYPE_UP) { //启动充电动画 ui_module_set_menu_class(UI_MODULE_MENU_BAT); g_battery_module_mgr.b_low_voltage = false; g_battery_module_mgr.capacity.init_time_count = my_fw_timer_hw_get_cnt(); g_battery_module_mgr.capacity.before_charge_persentage = p_batt->battery_persentage; battery_module_tick_check_process(); if(p_mode->f1 == SYSTEM_MODE_WORK) { } else { my_fw_sched_event_put(FACTORY_MODULE_EVENT_CHARGE_DEFAULT,0,NULL,MID_LVL_EVT); } } else { //去除充电动画 ui_module_set_menu_class(UI_MODULE_MENU_NONE); g_battery_module_mgr.capacity.b_discharge_delay = true; g_battery_module_mgr.factory_data.init_discharge_count = my_fw_timer_hw_get_cnt(); g_battery_module_mgr.capacity.charge_time = 0; g_battery_module_mgr.factory_data.discharge_time = 0; g_battery_module_mgr.factory_data.b_discharge_init_per= false; g_battery_module_mgr.capacity.after_charge_persentage = p_batt->battery_persentage; my_fw_tm_start(REMOTE_MODULE_EVENT_TIMEOUT,0,NULL,ROWER_TIMEOUT); //my_fw_sched_event_put(UI_MODULE_EVENT_MENU_DISCHARGE_DEFAULT,0,NULL,MID_LVL_EVT); if(p_mode->f1 == SYSTEM_MODE_WORK) { my_fw_sched_event_put(UI_MODULE_EVENT_MENU_DISCHARGE_DEFAULT,0,NULL,MID_LVL_EVT); } else { my_fw_sched_event_put(FACTORY_MODULE_EVENT_DISCHARGE_DEFAULT,0,NULL,MID_LVL_EVT); } } }

109 浏览量