一些小知识

1.在一些按钮的点击事件中,如果由于网络的延迟、线程的阻塞等问题,导致了在实际应用中 用户在短时间内点击多次会出现调用按钮的触发事件时,我们可以通过下面这样的方法来解决

//1.当用户点击后,在进来触发事件后直接将button设置为不可点击
senderBtn.userInteractionEnabled = NO;
//设置一个block,让其延迟一定时间,再回到主线程执行
int64_t delayInSeconds = 1.0;//1秒后执行
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC);
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
    //1秒后再让其恢复点击事件
    sender.userInteractionEnabled = YES;
});

2.在需要从服务器获取由一些消息的时间时,由于服务器通常存放的是时间戳,因此获取之后我们是需要将其修改的,可以通过调用下面的方法返回一个字符串的时间

- (NSString *)returnTimeByTimeStamp:(NSString *)timeStamp
{
    NSTimeInterval time=[timeStamp doubleValue];
    NSDate *detaildate=[NSDate dateWithTimeIntervalSince1970:time];
    //实例化一个NSDateFormatter对象
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    //设定时间格式,这里可以设置成自己需要的格式
    //:@"yyyy-MM-dd HH:mm:ss" 年-月-日 时-分-秒,其中HH为24小时制
    [dateFormatter setDateFormat:@"HH:mm"];
    NSString *currentDateStr = [dateFormatter stringFromDate: detaildate];
    return currentDateStr;
}

3.对于一些由storyBoard创建的控制器,在外部使用时暂时只能通过UIStoryboard的方法来创建。但是有时我们需要直接创建出一个筛选过数据的控制器,这时可以在内部创建一个实例,然后经过传入的参数经过设置后再返回

//storyboard创建的viewController的.m文件中
- (instancetype)initWithOrderlType:(NSString *)typeName AndTitle:(NSString *)title{
    //先创建一个实例
    TradeViewController *vc= [[UIStoryboard storyboardWithName:@"Trade" bundle:nil] instantiateViewControllerWithIdentifier:@"TradeViewController"];
    //对创建出来的控制器进行修改  
    //例如设置请求的参数,重新发送一个请求来改变当前的参数
    _requestModel = [[TradeListRequestModel alloc] init];
    _requestModel.type = typeName;
    [vc requsetDataWithRequest:_requestModel];
    //设置标题、取消顶部一些不要的控件等
    vc.tableView.tableHeaderView = nil;
    vc.title = title;
    //最后返回
    return vc;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值