iOS开发-------自定义回调

       以前一直用系统写的类,比如UIButton,用到的时候我们只需要知道用addTarget方法来回调,产生动作,但是却不知道回调是如何产生的,通过学习,自己写了一个KeyBoard的类,大体运行结果就是,点击+1,内部有一个计数器count,会+1,当count=3的时候来进行回调,-1的时候,count - 1,=0的时候,count 制零,页面很简单,只需明白道理即可。

页面如下




目标-动作回调(Target-Action)

    首先创建一个叫做KeyBoard的类,具体操作也就不提了,相信都很熟,继承于UIView,因为我们所有的视图类几乎都是继承与UIView类,建好类之后,在我们的.m文件中添加两个属性,如下

//
//  Keyboard.m
//  自定义回调
//
//  Created by YueWen on 15/9/22.
//  Copyright (c) 2015年 YueWen. All rights reserved.
//

#import "Keyboard.h"

@interface Keyboard ()
{
    int _count;//计数器
}
@property(nonatomic,weak)id target;//目标(也就是谁进行的回调)
@property(nonatomic,assign)SEL action;//执行的目标的方法
@property (nonatomic,strong)UIButton *b1;
@property (nonatomic,strong)UIButton *b2;
@property (nonatomic,strong)UIButton *b3;

@end



接下来,用纯代码来布局button,但是button的创建费时费力,很不爽,所以封装了一个创建button的简易方法,相关功能也是可以再加的,这里需求少,所以简单
封装button的创建方法如下:
-(UIButton *)loadMyButtonWithTitle:(NSString *)title Tag:(int) tag
{
    UIButton * button = [UIButton buttonWithType:UIButtonTypeSystem];//初始化button
    button.translatesAutoresizingMaskIntoConstraints = NO;//解除Autoresizing布局
    [button setTitle:title forState:UIControlStateNormal];//设置button的文字
    button.tag = tag;//设置tag值
    [button addTarget:self action:@selector(tapButton:) forControlEvents:UIControlEventTouchUpInside];//实现按钮的目标动作回调
    return button;//返回实例化button的地址
}

实现手动布局以及初始化

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Uni-app是一种跨平台的开发框架,可以用于开发多个平台的应用程序,包括iOS、Android和Web。而EMQX是一个开源的分布式物联网消息服务器,用于处理大规模的物联网设备连接和消息通信。 要在Uni-app中连接EMQX,可以按照以下步骤操作: 1. 首先,需要安装EMQX服务器。可以去EMQX官方网站下载安装包,并按照官方文档的指引进行安装和配置。 2. 在Uni-app项目中引入MQTT库。可以选择一种MQTT库,如paho-mqtt,通过npm或其他方式将其添加到Uni-app项目中。 3. 在Uni-app的代码中,创建一个MQTT客户端实例,并配置连接EMQX所需的相关参数,如服务器地址、端口号、用户名和密码等。 4. 使用MQTT客户端实例,可以通过调用相应的方法来连接到EMQX服务器,并订阅或发布消息,进行数据通信。 5. 在Uni-app的页面中,可以通过监听MQTT客户端的事件,如连接成功、接收到消息等,来实时更新页面的数据显示。 需要注意的是,要成功连接EMQX,需要确保Uni-app所在的设备能够正常访问EMQX服务器,并且服务器的配置和网络设置正确。 在开发过程中,可以参考MQTT库的文档和示例代码,以及EMQX的官方文档,进行适当的调试和配置。同时,为了提高连接的稳定性和安全性,可以考虑使用SSL/TLS协议进行加密通信,以及适当设置QoS等参数。 ### 回答2: uni-app是一款跨平台的开发框架,可以方便地开发基于H5和小程序的应用。而EMQX是一款开源的MQTT消息服务器,用于实现物联网设备间的消息传输。下面将详细介绍如何在uni-app中连接EMQX。 首先,我们需要在uni-app项目中引入MQTT客户端库。可以选择一些开源的MQTT库,如paho-mqtt.js或MQTT.js。这些库可以在uni-app项目的依赖管理器中进行安装。 接下来,在需要连接EMQX的uni-app页面中,我们可以创建一个MQTT客户端实例,并设置连接EMQX所需的参数,如主机IP地址、端口、用户名和密码等。然后,通过调用客户端实例的connect方法来建立与EMQX的连接。 在连接成功后,我们可以订阅指定主题的消息,通过调用客户端实例的subscribe方法,传入要订阅的主题。同时,我们也可以发送消息给某个主题,通过调用客户端实例的publish方法,传入要发送的主题和消息内容。 此外,我们还可以设置一些回调函数来处理连接状态的改变、接收到消息和发送消息的结果等。例如,可以通过设置onConnectionLost回调函数来处理连接断开的情况,设置onMessageArrived回调函数来处理接收到的消息,设置onMessageDelivered回调函数来处理消息发送结果等。 最后,在不需要连接EMQX的时候,可以通过调用客户端实例的disconnect方法来断开与EMQX的连接。 综上所述,通过使用合适的MQTT库,我们可以方便地在uni-app中连接EMQX,并实现与物联网设备的消息传输。这样,我们就可以实现一些基于EMQX的物联网应用,如远程控制和数据监测等功能。 ### 回答3: uni-app是一款基于Vue.js框架的跨平台开发工具,可以帮助开发者快速构建同时适配多个平台的应用。而EMQX则是一款开源的分布式消息中间件,用于实现高可靠性的消息传递与数据流动。 要在uni-app中连接EMQX,我们可以遵循以下步骤: 1. 在uni-app项目的根目录下,使用命令行工具运行`npm install uni-easemob --save`来安装相关依赖包,其中`uni-easemob`是用于操作EMQX的插件。 2. 在uni-app的主页面中,通过`import`关键字引入EMQX插件,例如`import uEMQX from 'uni-easemob'`。 3. 在页面的`mounted`生命周期函数中,通过创建EMQX实例来连接到EMQX服务器。可以使用如下代码示例:`const emqx = new uEMQX({ appkey: 'your_appkey', server: 'your_server' })`。其中`appkey`是你的应用密钥,`server`是你的EMQX服务器地址。 4. 接下来,你可以调用EMQX实例的方法来订阅主题、发布消息等。例如,可以使用`emqx.subscribe(topic)`来订阅某个主题,使用`emqx.publish(topic, message)`来发布消息。 需要注意的是,连接EMQX服务器需要填写正确的Appkey和服务器地址,否则无法成功连接。此外,还可以根据需要自定义处理EMQX消息的逻辑,例如在收到消息时更新页面内容。 总之,通过以上步骤,我们可以在uni-app中成功连接到EMQX服务器,实现消息的订阅和发布功能。希望以上信息对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值