【笃行】首页scrollview上滑动,Button状态改变
2017-09-05 20:57
344 查看
在做一个scrollView上有两个tableView时,想左滑右滑时tableView会滑动切换,在这里需要注意的是:
1、scrollView 的 contentsize 高度可以设置为0 ,这样就不会在滑动时出现上下晃动;
2、scrollView的属性pagingEnabled = yes,这样在滑动时就会一页一页的滑动;
然后在上方有两个按钮,想着就是滑动的时候按钮的选中状态也在改变,在这里卡了蛮久的。最后整理一下:
1、首先Button在定义的时候,设置选中状态和正常状态;
比如:
在这里之前出现过的问题:
setbackgroundImage 写成setImage 后每次都看不到Button上的字,搞了半天,各种换背景,透明,什么的,最后发现是方法写错了,以后警戒。
接着是Button的点击事件,需要设置一个中间Button来接收自己上一回点中的Button,首先判断点击的button是不是上回点击的,然后将点击的Button置为选中,上一回的置为非选中。
这里tag值设为100,因为与嵌套的tableView.tag = 200要区分。
还要实现scrollView的代理方法,这个方法是实现滑动的时候,不同的状态改变。
1、scrollView 的 contentsize 高度可以设置为0 ,这样就不会在滑动时出现上下晃动;
2、scrollView的属性pagingEnabled = yes,这样在滑动时就会一页一页的滑动;
_homeScrollView = [[UIScrollView alloc] init]; //设置ScrollView内容展示的大小 _homeScrollView.contentSize = CGSizeMake(WIDTH * 2 , 0); _homeScrollView.bounces = NO; _homeScrollView.pagingEnabled = YES; _homeScrollView.delegate = self; [self.view addSubview:_homeScrollView];
然后在上方有两个按钮,想着就是滑动的时候按钮的选中状态也在改变,在这里卡了蛮久的。最后整理一下:
1、首先Button在定义的时候,设置选中状态和正常状态;
比如:
//正常状态的背景颜色 _liftButton.backgroundColor = [UIColor colorWithRed:206/255.0 green:206/255.0 blue:206/255.0 alpha:1]; //设置Button上的字和颜色 [_liftButton setTitle:@"公告" forState:UIControlStateNormal]; [_liftButton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal]; //设置Button选中状态的背景颜色(图片) [_liftButton setBackgroundImage:[UIImage imageNamed:@"按钮选中背景"] forState:UIControlStateSelected];
在这里之前出现过的问题:
setbackgroundImage 写成setImage 后每次都看不到Button上的字,搞了半天,各种换背景,透明,什么的,最后发现是方法写错了,以后警戒。
接着是Button的点击事件,需要设置一个中间Button来接收自己上一回点中的Button,首先判断点击的button是不是上回点击的,然后将点击的Button置为选中,上一回的置为非选中。
//按钮点击事件 -(void)buttonSelected:(UIButton *)sender{ if (sender!=_tempButton) { sender.selected = YES; _tempButton.selected = NO; _tempButton =sender; //此方法设置Button点击后tableView跳转,动画以0.5倍的速度 //偏移量为Button.tag - 100 //因为Button.tag = 100 [UIView animateWithDuration:0.5 animations:^{ _homeScrollView.contentOffset = CGPointMake((sender.tag-100)*WIDTH, 0); }]; } }
这里tag值设为100,因为与嵌套的tableView.tag = 200要区分。
还要实现scrollView的代理方法,这个方法是实现滑动的时候,不同的状态改变。
#pragma mark - UIScrollerViewDelegate //scrollview 的协议方法 -(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{ float sub = _homeScrollView.contentOffset.x/WIDTH; UIButton * btn = (UIButton * )[self.view viewWithTag:sub+100]; if ( _tempButton != btn) { btn.selected = YES; _tempButton.selected = NO; _tempButton =btn; } }
相关文章推荐
- DrawerLayout的使用 侧滑加载Listview,首页使用Fragment和处理点击触摸冲突、穿透事件和监听菜单滑动状态的改变的详细介绍
- Android 标题栏和状态栏随ScrollView滑动颜色改变轻松实现
- Android 自定义ScrollView嵌套滚动兼容,监听滑动状态:顶部、底部、停止、滑动中
- WPF Button 鼠标移入、移除、选中状态的改变
- android 鼠标悬停状态下改变背景色(类似Button、listview item 的selector)
- 36.在iPhone4S上,UIButton-setEnabled属性为NO时,无法改变button的状态,如上面的文字
- iOS scrollView,tableView,collection滑动改变方向,分别在上滑和下滑中进行操作
- Android ScrollView .顶部栏滑动透明度改变,底部栏滑到特定位置显示或隐藏效果
- android 不同主题下不同状态的button 动态改变文字和图片
- 上滑动改变头部,仿支付宝头部变化,解决ScrollView与listView冲突问题
- listview中有checkbox 滑动后状态改变
- 优雅的判断scrollView的滑动方向(只适用一次手势中不改变滑动方向)
- 实现背景颜色随着ScrollView滑动改变的ActionBar
- Flex中如何通过disabledIcon样式和enabled属性在Button在改变有效/无效状态时改变图标的例子
- 在 tableview的上面 添加 一个view, 下面 加一个 button,都是 监听 scrollview的滑动而已,
- 自定义ScrollView 滑动改变背景颜色
- 解决首页广告ScrollView 嵌套viewpage 影响viewpager 滑动
- CheckBox在listView滑动后状态改变的解决办法
- 监听ScrollView的滑动距离和滑动状态
- Android设置Button各种状态下背景改变