iOS开发项目总结

#webview开发过程中踩到的坑;
1.webview关闭时关闭音频声音的问题;
一开始采取的时候采取@"about:blank"的方式关闭,发现在出现webview跳转后goback回来的时候加载之前的空白页,所以这个方法有局限性;
2.采用与JS交互的方法;
在页面关闭之前,直接调用JS关闭视频播放的方法,实现音频播放的关闭;
3.webview同时加载两个URl会报错,即一个页面的URL未加载完成又开始加载另外一个页面的URL,这时候webview就会报错;

#音频播放控制的问题
1.音频循环播放的问题;
通过监听音频播放完成的动作,将音频的播放回拨到开始的地方;

 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playerItemDidPlayToEnd:) name:AVPlayerItemDidPlayToEndTimeNotification object:nil];
-(void)rerunPlayVideo{
    if (!self.player) {
        return;
    }
    CGFloat a=0;
    NSInteger dragedSeconds = floorf(a);
    CMTime dragedCMTime = CMTimeMake(dragedSeconds, 1);
    [self.player seekToTime:dragedCMTime];
    [self.player pause];
}

#倒计时结束的控制问题
1.通过GCD的方式控制倒计时;
通过计时器倒计时音频的控制,但需要处理在倒计时结束前对其它事件的处理,防止页面已经进入到其它页面了计时器还没有释放,这样常常会出现奔溃;

- (void)createTimer {
    //设置倒计时时间
    //__block 如果修饰指针时,指针相当于弱引用,指针对指向的对象不产生引用计数的影响
    __block int timeout = 60;
    dispatch_queue_t global = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
    dispatch_source_t timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, global);
    // 设置触发的间隔时间
    dispatch_source_set_timer(timer, DISPATCH_TIME_NOW, 1.0 * NSEC_PER_SEC, 0 * NSEC_PER_SEC);
    //1.0 * NSEC_PER_SEC  代表设置定时器触发的时间间隔为1s
    //0 * NSEC_PER_SEC    代表时间允许的误差是 0s
    //block内部 如果对当前对象的强引用属性修改 应该使用__weak typeof(self)weakSelf 修饰  避免循环调用
    WS(ws);
    //设置定时器的触发事件
    dispatch_source_set_event_handler(timer, ^{
        //1. 每调用一次 时间-1s
        timeout --;
        if (timeout < 0) {
            dispatch_source_cancel(timer);
            //MRC下需要释放,这里不需要
            //   dispatch_realse(timer);
            //在主线程中对button进行修改操作
            dispatch_async(dispatch_get_main_queue(), ^{
               
        }else {
            //处于正在倒计时,在主线程中刷新button上的title,时间-1秒
            dispatch_async(dispatch_get_main_queue(), ^{
                
            });
        }
    });
    dispatch_resume(timer);
}

#属性字体设置字体的间隔
1.通过NSKernAttributeName这个方法设置属性字体的间隔;

NSMutableAttributedString *attStr = [[NSMutableAttributedString alloc] initWithString:allStr];

[attStr addAttribute:NSKernAttributeName value:@9.2 range:[allStr rangeOfString:content]];
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值