0822-0829 短信验证码倒计时/scrollView/随机取值/不同类型cell

本文介绍了iOS开发中几个实用的技巧,包括实现短信验证码60s倒计时、解决UIScrollView无法滚动的问题、设置scrollView的属性、使用arc4random()生成随机数以及使用xib自定义cell的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 发送短信验证码60s倒计时
    在发送验证码按钮的点击事件方法里的实现代码
 __block NSUInteger count = 60;
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
    dispatch_source_t _timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, queue);
    dispatch_source_set_timer(_timer, dispatch_walltime(NULL, 0), 1.0 * NSEC_PER_SEC, 0);//每秒执行
    dispatch_source_set_event_handler(_timer, ^{
        if (count <= 0) {//倒计时结束 关闭
            dispatch_source_cancel(_timer);
            dispatch_async(dispatch_get_main_queue(), ^{
                //设置验证码按钮
                [self.messageButton setTitle:@"请求验证码" forState:(UIControlStateNormal)];
                self.messageButton.userInteractionEnabled = YES;
            });
        }else {
            int seconds = count % 60;
            NSString *strTime = [NSString stringWithFormat:@"%.2d",seconds];
            dispatch_async(dispatch_get_main_queue(), ^{
                //设置验证码按钮
                [UIView beginAnimations:nil context:nil];
                [UIView setAnimationDuration:1];
                [self.messageButton setTitle:[NSString stringWithFormat:@"%@秒后重新发送",strTime] forState:(UIControlStateNormal)];
                [UIView commitAnimations];
                self.messageButton.userInteractionEnabled = NO;
            });
            count --;
        }
    });
    dispatch_resume(_timer);

2.在storyboard里面拖了一个scrollview,但是奇怪的是无法实现滚动.然而,当我新建一个空的页面,重新拖一个并设置里面的contentSize之后,是可以滚动的.

解决方法:

-(void)viewDidAppear:(BOOL)animated

{
     self.scrollView.contentSize =CGSizeMake(320,1000);
}
//或者 这个方法无效的时候 在下面的方法里面设置

-(void)viewDidLayoutSubviews 
{
 self.scrollView.contentSize =CGSizeMake(320,1000);
}

注意:此处是在viewDidAppear里面,在viewDidLoad和viewWillAppear里面都是无效的.
3. scrollView的属性设置
http://blog.youkuaiyun.com/u012889435/article/details/17523705#
4. arc4random() 比较精确不需要生成随机种子
使用: 通过arc4random() 获取0到x-1之间的整数的代码如下:

  int value = arc4random() % x; 

获取1到x之间的整数的代码如下:

 int value = (arc4random() % x) + 1; 

5.iPhone屏幕尺寸、分辨率及适配
http://blog.youkuaiyun.com/phunxm/article/details/42174937
6. 使用xib自定义cell,多个cell类型的时候,不要在一个xib文件中拖拽多个cell进行设置; 因为这样在cell的放回方法里面正常方法判断到xib中有多个cell的时候会崩溃; 一定要使用这种方式的cell取值方法是把xib中的cell按照添加顺序当做数组对象, 按照数组下标取出不同类型的的cell, 具体方法:

mainCell = [[[NSBundle mainBundle]loadNibNamed:@"ZYQMainTableViewCell" owner:self options:nil]objectAtIndex:0];
//有第二种类型cell的时候,并且是第二个拖拽添加的
mainCell = [[[NSBundle mainBundle]loadNibNamed:@"ZYQMainTableViewCell" owner:self options:nil]objectAtIndex:1];

不建议使用这种方法,因为如果cell类型很多的时候,使用数组进行分辨赋值,后期维护的时候容易出现混乱等问题;
如果使用xib的话,比较常用的方法是分别在不同的xib文件中设置每一个cell:

if (indexPath.section == 0 || (indexPath.section == 1 && !(indexPath.row == 0))) { //根据不同的条件选择判断返回那种类型的cell
       mainCell = [tableView dequeueReusableCellWithIdentifier:@"firstTableCell" forIndexPath:indexPath];
    }else if (indexPath.section == 1 && indexPath.row == 0){
        mainCell = [tableView dequeueReusableCellWithIdentifier:@"secondTableCell" forIndexPath:indexPath];
    }
    mainCell.selectionStyle = UITableViewCellSelectionStyleNone; //取消cell的点击选中状态
    return mainCell;
}
爬虫Python学习是指学习如何使用Python编程语言来进行网络爬取和数据提取的过程。Python是一种简单易学且功能强大的编程语言,因此被广泛用于爬虫开发。爬虫是指通过编写程序自动抓取网页上的信息,可以用于数据采集、数据分析、网站监测等多个领域。 对于想要学习爬虫的新手来说,Python是一个很好的入门语言。Python的语法简洁易懂,而且有丰富的第三方库和工具,如BeautifulSoup、Scrapy等,可以帮助开发者更轻松地进行网页解析和数据提取。此外,Python还有很多优秀的教程和学习资源可供选择,可以帮助新手快速入门并掌握爬虫技能。 如果你对Python编程有一定的基础,那么学习爬虫并不难。你可以通过观看教学视频、阅读教程、参与在线课程等方式来学习。网络上有很多免费和付费的学习资源可供选择,你可以根据自己的需求和学习风格选择适合自己的学习材料。 总之,学习爬虫Python需要一定的编程基础,但并不难。通过选择合适的学习资源和不断实践,你可以逐步掌握爬虫的技能,并在实际项目中应用它们。 #### 引用[.reference_title] - *1* *3* [如何自学Python爬虫? 零基础入门教程](https://blog.youkuaiyun.com/zihong523/article/details/122001612)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [新手小白必看 Python爬虫学习路线全面指导](https://blog.youkuaiyun.com/weixin_67991858/article/details/128370135)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值