`
zxs19861202
  • 浏览: 916074 次
  • 性别: 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中的一个控件,用于展示一系列可滚动的行数据,用户可以通过上下...

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

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

    iOS自定义scrollerview滑动条

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

    ios-顶部滑动标签.zip

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

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

    然而,实现一个既美观又功能齐全的滑动菜单并不是一件容易的事情,这不仅要求开发者具备深厚的编程基础,还需要他们花费大量的时间在设计和调试上。 为了简化这一过程,开发者社区中不断涌现出各种封装好的工具库,...

Global site tag (gtag.js) - Google Analytics