UIPicker实现循环联动效果

用UIPicker实现循环联动效果:

效果图:

具体步骤:

1.新建一个Empty Project,添加一个rootViewController;

2.DXWAppDelegate.h:

#import <UIKit/UIKit.h>

@class rootViewController;

@interface DXWAppDelegate :UIResponder <UIApplicationDelegate>

@property (strong,
nonatomic) UIWindow *window;

@property(nonatomic,strong)rootViewController * rootVController;

@end

DXWAppDelegate.m:

#import "DXWAppDelegate.h"

#import "rootViewController.h"

@implementation DXWAppDelegate

- (void)dealloc

{

    [_window release];

    [_rootVController
release];

    [super dealloc];

}

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

{

    self.window = [[[UIWindowalloc]
initWithFrame:[[UIScreenmainScreen]
bounds]] autorelease];

    self.rootVController = [[rootViewControlleralloc]
initWithNibName:@"rootViewController"bundle:nil];

    self.window.rootViewController =self.rootVController;

    self.window.backgroundColor = [UIColorwhiteColor];

    [self.windowmakeKeyAndVisible];

    return YES;

}

3.rootViewController.h:

#import <UIKit/UIKit.h>

@interface rootViewController :UIViewController<UIPickerViewDelegate,UIPickerViewDataSource>

@property (retain,
nonatomic) IBOutlet UIPickerView *picker;

@property(retain,nonatomic)NSArray *arrChinese;

@property(retain,nonatomic)NSArray *arrPY;

@end

rootViewController.m:

#import "rootViewController.h"

#define component_0 0

#define other_component
1

#define max 16384

@interfacerootViewController ()

@end

@implementation rootViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil

{

    self = [superinitWithNibName:nibNameOrNil
bundle:nibBundleOrNil];

    if (self) {

        // Custom initialization

    }

    returnself;

}

- (void)viewDidLoad

{

    [superviewDidLoad];

    NSArray *array = [NSArrayarrayWithObjects:@"上海",@"北京",@"天津",@"四川",@"台湾",@"香港",@"江苏",@"湖北",@"山东",@"浙江",nil];

    self.arrChinese = array;

    array = [NSArrayarrayWithObjects:@"shanghai",@"beijing",@"tianjin",@"sichuan",@"taiwai",@"xianggang",@"jiangsu",@"hubei",@"shandong",@"zhejiang",nil];

    self.arrPY = array;

    //用来设置默认选项

    [self.pickerselectRow:max/2inComponent:component_0animated:YES];

    [self.pickerselectRow:max/2inComponent:other_componentanimated:YES];

}

//每个组件有几行数据

-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component

{

    //创建数据

    if(component ==component_0)

    {

        //return [self.arrChinese count];   //动态获取数字

        return
max;

    }else{

        //return [self.arrPY count];

        return
max;

    }

}

#pragma mark delegate

//每个组件的每行显示什么数据

-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component

{

    if(component ==component_0)

    {

        return [self.arrChineseobjectAtIndex:row%([self.arrChinesecount])];

    }else{

        return [self.arrPYobjectAtIndex:row%[self.arrPYcount]];

    }

}

//设置几个Component

-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView

{

    return
2;

}

//当你对一个pickerView进行了一次操作之后都会被调用

-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component

{

    NSString *str =nil;

    if(component ==component_0)

    {

        NSLog(@"%i",row);

        [self.pickerselectRow:row
inComponent:other_componentanimated:YES];

    }

    else

    {

        NSLog(@"%i",row);

//        str = [self.arrPY objectAtIndex:row];

        [self.pickerselectRow:row
inComponent:component_0animated:YES];

    }

}

- (void)dealloc {

    [_picker
release];

    [_arrChineserelease];

    [_arrPY
release];

    [super
dealloc];

}

@end

注意:在使用picker之前要右击控件到File's owner,将delegate和datasource绑定到File''s owner中

时间: 2024-11-10 11:38:46

UIPicker实现循环联动效果的相关文章

js实现省市联动效果的简单实例

 本篇文章主要是对js实现省市联动效果的简单实例进行了介绍,需要的朋友可以过来,希望对大家有所帮助 实例如下: 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/x

viewpager用handler实现的广告循环动画效果在fragment间切换会变快

问题描述 viewpager用handler实现的广告循环动画效果在fragment间切换会变快 我用viewpager做了一个轮播效果的图,实现循环是用的handler,线程休眠三秒切换fragment,我将它们全部放在一个fragment当中,包括适配器adapter也放在里面了,当我切换到另一个fragment后再切换回来,这个滚动效果就变得不受控制了,时快时慢,还有好几张广告同时闪过的情况,求解释.. 解决方案 http://www.cnblogs.com/tiantianbyconan

简单实现ajax三级联动效果

本文实例为大家分享了ajax三级联动效果展示的具体代码,供大家参考,具体内容如下 主页面代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="../wenjian/jquery-2.2.3.min.js"></sc

仿饿了吗点餐界面两个ListView联动效果_Android

如图是效果图 是仿饿了的点餐界面 1.点击左侧的ListView,通过在在适配器中设置Item来改变颜色,再通过notifyDataSetInvalidated来刷新并用lv_home.setSelection(showTitle.get(arg2));来关联右侧的 2.右侧的主要是重写下onScroll的方法:来改变左侧ListView的颜色及背景 不过程序中还有个问题,望大神解答就是我右侧的ListView下拉时,上面的TextView能改变:但是上拉时,TextView的不能及时改变应为滑

分别用marquee和div+js实现首尾相连循环滚动效果,仅3行代码_javascript技巧

复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <HTML xmlns="http://www.w3.org/1999/xhtml"> <HEAD> <TITLE>分别用marquee

基于jQuery+JSON的省市二三级联动效果_jquery

省市区联动下拉效果在WEB中应用非常广泛,尤其在一些会员信息系统.电商网站最为常见.开发者一般使用Ajax实现无刷新下拉联动.本文将讲述,利用jQuery插件,通过读取JSON数据,实现无刷新动态下拉省市二(三)级联动效果. HTML 首先在head中载入jquery库和cityselect插件. <script type="text/javascript" src="js/jquery.js"></script> <script ty

控制-viewpager用handler实现的广告循环动画效果在fragment间切换会变快

问题描述 viewpager用handler实现的广告循环动画效果在fragment间切换会变快 我用viewpager做了一个无线循环滚动效果的广告,实现循环是用的handler,我将它们全部放在一个fragment当中,包括适配器adapter也放在里面了,当我切换到另一个fragment后再切换回来,这个滚动效果就变得不受控制了,时快时慢,还有好几张广告同时闪过的情况,求解释.. 解决方案 说明你的异步延时没有控制好,你看看代码,调试一下,是不是创建了多个异步,这样时间交叉,就会乱了 解决

js省市县三级联动效果实例_javascript技巧

本文实例讲述了js实现简单的省市县三级联动效果.分享给大家供大家参考,具体如下: 效果图: 实现代码: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>城市三级联动</title> <style type="text/css"> *{ padd

省市联动效果的简单实现代码(推荐)_javascript技巧

下拉框二级联动效果在日常应用场景中经常会碰到,尤其是涉及地区.品种等有多级选项时.例如:常见的省市联动下拉框,在选择省份时,城市列表也会更随改变. 思路: 1,所谓联动效果,是指出发父级的数据变化时,会影响到关联性子级数据元素的变化. 下面是造的省市的数据: var linkDatas = { provinces:[ { "code":"0", "name":"请选择" }, { "code":"