暑假第二周仿写了share
启动页的设置
通过使用定时器控制视图控制器的存在时间,并跳转至下一页面
[NSTimer scheduledTimerWithTimeInterval:3 target:self selector:@selector(outStartShow) userInfo:nil repeats:NO];
登陆注册页面
- 学习到使用传值将注册的用户名、密码传到登陆页面,再去用传到登陆页面的值进行判断等操作
- 属性传值:正向传值
- 协议传值:反向传值
传值方式学习了 属性传值和协议传值,具体看这篇博客 【iOS】多界面传值.
改变根视图
- 学习了如何将当前根视图改变,将另一视图控制器赋值给当前视图
UIWindow* window = [UIApplication sharedApplication].windows[1];
window.rootViewController = tabBarController;
- 第一行就是获取当前window的根视图
- 第二行是将创建好的根视图赋给根视图
解决的滚动视图的一些bug
- 在手动拖动滚动视图停止后,自动滚动会加快滚动速度(计时器把手动拖动的事件也算进去了),因此需要在手动拖动滚动视图的时候停止计时器,当拖动停止后重新启动定时器。
用到了两个协议函数
(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView;
(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate;
在开始拖拽时,[_scrollViewTimer invalidate]
用于停止计时器
停止拖拽时,_scrollViewTimer = [NSTimer scheduledTimerWithTimeInterval:2 target:self selector:@selector(autoRepeat) userInfo:nil repeats:YES]
重新设置计时器
- 注:计时器一旦停止就销毁了,因此得重新设置计时器
- 自动轮播图所在页面内还存在另一 scrollView时,在拖动另一scrollView的情况下,自动轮播图会收到影响
- 因此要给两个scrollView分别设置tag值,在方法函数调用时,要先判定是否是我们需要的scrollView用该方法
属性textField的用法
- 不论是写登陆注册,还是对搜索界面在输入"大白"后显示弹出界面,都少不了对textField.text的使用。
- 在点击空白处,方法函数
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
能收起键盘
熟练掌握自定义cell
- 慢慢学习发现,自定义cell是在写界面必不可少的。之前总是喜欢用button或者label来写界面,后来发现只要能用好UITableViewCell后,在界面排版有规律的情况下能省下不少时间,而且其复用机制能很好的减少内存