`
zxs19861202
  • 浏览: 915249 次
  • 性别: Icon_minigender_1
  • 来自: 湖北—》上海
社区版块
存档分类
最新评论

IOS 实现背景滑动

    博客分类:
  • ios
 
阅读更多

1、在很多APP中,我们都可以看见那些特效绚丽的滑动选项条,那么如何才能够简单,快速的实现那样的效果呢


 

 

 

  1. #import <UIKit/UIKit.h>  
  2.   
  3. @interface ViewController : UIViewController{  
  4.     NSMutableArray *btnArray;  
  5.     NSMutableArray *titleArray;  
  6. }  
  7.   
  8. @property (nonatomic,strong) UIView *customView;  
  9. @property (nonatomic,strong) UIView *backView;  
  10. @property (nonatomic,strong) UIButton *myButton;  
  11.   
  12. -(void)myButtonClcik:(id)sender;  
  13.   
  14. @end  
第二步:在我们的额viewdidload方法中,或者自定义一个方法中创建我么的界面元素。《这里我引日了QuartzCore框架,是为了使用其layer属性》

 

 

  1. #import "ViewController.h"  
  2. #import <QuartzCore/QuartzCore.h>  
  3.   
  4. @interface ViewController ()  
  5.   
  6. @end  
  7.   
  8. @implementation ViewController  
  9.   
  10. @synthesize customView;  
  11. @synthesize backView;  
  12. @synthesize myButton;  
  13.   
  14. //每行显示的button个数  
  15. #define kSelectNum 6  
  16.   
  17. - (void)viewDidLoad  
  18. {  
  19.     [super viewDidLoad];  
  20.     // Do any additional setup after loading the view, typically from a nib.  
  21.       
  22.     //创建背景视图,并设置背景颜色或者图片  
  23.     customView = [[UIView alloc]initWithFrame:CGRectMake(20, 100, 900, 60)];  
  24.     customView.backgroundColor = [UIColor blackColor];  
  25.     //设置customView的样式,变为圆角  
  26.     customView.layer.cornerRadius = 15.0f;  
  27.     customView.layer.masksToBounds = YES;  
  28.     //将customView add 到当前主View中  
  29.     [self.view addSubview:customView];  
  30.       
  31.     //创建button的背景视图  
  32.     backView = [[UIView alloc] initWithFrame:CGRectMake(5, 5, 95, 50)];  
  33.     backView.backgroundColor = [UIColor blueColor];  
  34.     //设置为圆角。以免造成重叠显示  
  35.     backView.layer.cornerRadius = 15.0f;  
  36.     backView.layer.masksToBounds = YES;  
  37.     //将backView视图add到customView中  
  38.     [customView addSubview:backView];  
  39.       
  40.       
  41.     //创建button,首先button的个数是不固定的,因此我们需要动态的生成button  
  42.     //创建数组,保存button的title  
  43.     btnArray = [[NSMutableArray alloc]init];  
  44.     titleArray = [[NSMutableArray alloc]initWithObjects:@"热播大片",@"最新更新",@"最热观看",@"美剧大片",@"韩剧频道",@"综艺娱乐", nil];  
  45.     //动态生成button  
  46.     for (int i = 0; i < kSelectNum; i ++){  
  47.         myButton = [UIButton buttonWithType:UIButtonTypeCustom];  
  48.         myButton.titleLabel.font = [UIFont boldSystemFontOfSize:20.0f];  
  49.         [myButton setTitle:[titleArray objectAtIndex:i] forState:UIControlStateNormal];  
  50.         [myButton setTitleColor:[UIColor grayColor] forState:UIControlStateNormal];  
  51.         [myButton setTitleColor:[UIColor whiteColor] forState:UIControlStateSelected];  
  52.         [myButton setFrame:CGRectMake(i%(kSelectNum + 1)*140+5, 5, 95, 50)];  
  53.         [myButton addTarget:self action:@selector(myButtonClcik:) forControlEvents:UIControlEventTouchUpInside];  
  54.         myButton.tag = i;  
  55.         [btnArray addObject:myButton];  
  56.         [customView addSubview:myButton];  
  57.           
  58.         //设置默认选择的button.title的颜色  
  59.         if(i == 0){  
  60.             myButton.selected = YES;  
  61.         }  
  62.     }  
  63. }  

第三步:我们为button添加按钮点击事件,同时设置背景色滑动特效。

 

 

  1. - (void)myButtonClcik:(id)sender{  
  2. //    NSString *selectedBtn = [NSString stringWithFormat:@"%@",[titleArray objectAtIndex:button.tag]];  
  3. //    UIAlertView *alert = [[UIAlertView alloc]initWithTitle:nil message:selectedBtn delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];  
  4. //    [alert show];  
  5.       
  6.     //添加动画过度效果  
  7.     [UIView beginAnimations:@"slowGlide" context:nil];  
  8.     [UIView setAnimationDuration:0.3f];  
  9.       
  10.     //设置每次只能选择一个button  
  11.     UIButton *button = (UIButton *)sender;  
  12.     if(!button.selected){  
  13.         for (UIButton *eachBtn in btnArray) {  
  14.             if(eachBtn.isSelected){  
  15.                 [eachBtn setSelected:NO];  
  16.             }  
  17.         }  
  18.         [button setSelected:YES];  
  19.           
  20.         //设置点击那个按钮,那个按钮的背景改变为backView的颜色  
  21.         [backView setFrame:button.frame];  
  22.     }  
  23.     [UIView commitAnimations];  
  24. }  

最后成型,我们就可以根据我们的样式需要进行调整了。
  • 大小: 18.6 KB
分享到:
评论

相关推荐

    自定义背景滑动特效选项条

    在iOS开发中,自定义背景滑动特效选项条是一种常见的用户界面元素,它能提供更加丰富和个性化的交互体验。这种选项条通常用于展示多个可选项目,用户可以通过滑动来选择他们感兴趣的内容。本文将深入探讨如何在iOS中...

    iOS仿iphone手机相册手势滑动多选照片功能.zip

    在iOS开发中,实现类似iPhone原生相册的手势滑动多选照片功能是一项常见的需求。这个项目通过使用UICollectionView,一个强大的布局控件,来模拟iPhone相册中的多选图片功能,并结合手势识别来增强用户体验。以下是...

    滑动开关按钮 ios开关按钮

    iOS的开关按钮(UISwitch)具有独特的视觉样式,包括一个可滑动的小圆点,当用户向左或向右滑动时,圆点会在两种颜色的背景之间移动,代表开关的状态变化。在Android上,虽然原生的CheckBox和RadioButton可以实现...

    ios-滑动多选(非常实用).zip

    在这个名为"ios-滑动多选(非常实用).zip"的压缩包中,可能包含了实现这一功能的代码示例或者教程资源。 滑动多选的核心原理通常基于Swift或Objective-C编程语言,结合UITableView或UICollectionView等UI组件。在...

    仿IOS横向滑动日历时间轴

    这个例子就是针对这一需求而设计的,它实现了类似于iOS7的横向滑动日历功能,允许用户通过手指按住日期并左右滑动来查看不同日期的信息。 在iOS系统中,日历通常以一种直观的时间轴形式呈现,使得用户能够快速浏览...

    ios-滑动改变导航栏状态.zip

    本项目“ios-滑动改变导航栏状态.zip”主要展示了如何通过用户滑动屏幕来动态改变导航栏的状态,比如在下拉时放大导航栏中的图片,提供更丰富的交互体验。这个功能常见于新闻阅读、社交媒体等类型的App中,增加用户...

    ios-无限滑动选择.zip

    在iOS开发中,实现无限滑动选择是一种常见的交互设计,特别是在日期选择、选项滚动等场景中。本项目“ios-无限滑动选择.zip”显然旨在创建一个类似空格(Spaces)的操作体验,开发者可以从GitHub仓库...

    仿IOS7滑动开关

    3. 动画效果(Animations):为了达到与iOS7类似的滑动效果,我们需要实现触发动画。这可能涉及到ObjectAnimator、ValueAnimator或者自定义动画类,通过改变开关的背景位置、颜色等属性,使滑动过程更加平滑自然。 ...

    仿ios滑动控件

    这个控件通常指的是实现类似于iOS中PickerView或SegmentedControl的功能,它允许用户通过滑动来选择不同的选项。下面将详细探讨如何在Android平台上创建这样一个控件。 首先,我们来看`PickerScrollView`,这是实现...

    IOS6风格的滑动开关.zip

    在你提供的资源"IOS6风格的滑动开关.zip"中,包含了一个模仿iOS 6风格的滑动开关(Toggle Switch)的自定义组件实现,这对于那些希望在Android应用中实现iOS设计风格的开发者来说非常有用。 首先,让我们深入了解...

    ios自定义segement,有按钮有下滑线滑动

    这个【标题】"ios自定义segement,有按钮有下滑线滑动"和【描述】"ios自定义的segement,自带下滑线,点击按钮会有颜色变化"就指出了一个自定义Segment Control的需求,即实现带有下滑线并且按钮在被选中时颜色会...

    ios-PopupOverlayer 滑动弹出层.zip

    【iOS PopupOverlayer 滑动弹出层】是一个开源项目,主要针对iOS应用开发中的交互特效设计。项目作者是MarkeJave,其在GitHub上发布并维护。PopupOverlayer提供了一种新颖的方式来实现弹出层效果,尤其是当需要在...

    IOS实现点击滑动抽屉效果

    在iOS开发中,实现点击滑动抽屉效果是一种常见的交互设计,它允许用户通过手势从屏幕边缘滑出一个隐藏的视图,通常用于展示菜单或更多选项。这种效果在Android平台上通常使用SlidingDrawer组件来实现,但在iOS上则...

    仿IOS适用Android的滑动开关

    在Android开发中,为了提供与iOS相似的用户体验,开发者经常需要创建自定义控件来实现特定的交互效果,比如仿iOS的滑动开关。本文将深入探讨如何在Android平台上实现这样一个仿iOS风格的滑动开关(Slide Switch)。 ...

    仿ios日期滑动(滚轮)选择器

    在本文中,我们将深入探讨如何实现一个仿iOS的日期滑动选择器,并探讨其核心技术和设计要点。 首先,我们需要理解`UIPickerView`的基本原理。它是iOS中的一个控件,用于展示一系列可滚动的行数据,用户可以通过上下...

    ios-使用的滑动菜单工具.zip

    在iOS应用开发中,滑动菜单通常用于提供一种便捷的方式来展示和访问隐藏的功能或选项,增强用户体验。"ios-使用的滑动菜单工具.zip" 文件提供了一个完全解耦的解决方案,这意味着开发者可以轻松地将这个工具集成到...

    Android仿ios滑动开关以及Material效果的滑动开关

    本文将深入探讨如何在Android中模仿iOS风格的滑动开关以及实现Material Design的滑动开关效果。 **一、iOS风格的滑动开关** iOS的滑动开关,又称UISwitch,在设计上通常具有明确的分隔线和明显的颜色区分,以展示...

    iOS自定义scrollerview滑动条

    本文将深入探讨如何实现一个适用于表视图的自定义纵向滑动条,并着重讲解其颜色自定义。 首先,我们需要理解iOS中的滚动条(ScrollIndicator)概念。默认情况下,UITableView和UICollectionView会自动显示内置的...

    ios-顶部滑动标签.zip

    这个组件简化了在iOS应用中实现顶部滑动标签的功能,同时也提供了高度的定制性。 `CXSlideBar`的核心功能包括: 1. **滑动切换**:用户可以通过滑动标签条来切换不同的页面,这种交互方式直观且易于理解。 2. **...

Global site tag (gtag.js) - Google Analytics