IOS学习:基本控件(UIPickerView)

一 、UIPickerView是一个选择器件,外形如下:

 




二、UIPickerView代理:UIPickerViewDataSource、UIPickerViewDelegate 几个常用的代理方法如下:

// returns the number of 'columns' to display.

// 返回总共的列数

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView;


// returns the # of rows in each component..

// 返回对应列的行数

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


// 返回指定行列的显示内容

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


// 选择某一项时调用

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


三、几个常用的方法和属性

     1、reloadComponent:(NSInteger) component; // 重新加载某一列

     2、pickerView.showsSelectionIndicator = YES; // 显示选中框


四、上面程序的部分代码

//
//  PickerViewController.m
//  UIPickerViewDemo
//
//  Created by  on 13-5-14.
//  Copyright (c) 2013年 ***  *** iso学习 ***. All rights reserved.
//

#import "PickerViewController.h"
@interfacePickerViewController ()
@end
@implementation PickerViewController
NSArray *array;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [superinitWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    returnself;
}

- (void)viewDidLoad
{
    [superviewDidLoad];
    self.view.backgroundColor = [UIColororangeColor];
    self.provArray = [NSArrayarrayWithObjects:@"广东", @"江西", nil];
    self.cityArray1 = [NSArrayarrayWithObjects:@"深圳", @"广州", @"东莞", nil];
    self.cityArray2 = [NSArrayarrayWithObjects:@"南昌", @"抚州", @"九江", @"赣州", nil];
    array = self.cityArray1;
// Do any additional setup after loading the view.
    
    UINavigationBar *navBar = [[[UINavigationBaralloc] initWithFrame:CGRectMake(0, 0, 320, 44)] autorelease];
    UINavigationItem *navItems = [[[UINavigationItemalloc] init] autorelease];
    UIBarButtonItem *backItem = [[[UIBarButtonItemalloc] initWithTitle:@"back"style:UIBarButtonItemStyleBorderedtarget:selfaction:@selector(backPressed)] autorelease];
    [navItems setLeftBarButtonItem:backItem];
    [navBar pushNavigationItem:navItems animated:YES];
    [self.viewaddSubview:navBar];

    self.pickerView = [[[UIPickerViewalloc] initWithFrame:CGRectMake(0, 44, 320, 100)] autorelease];
    self.pickerView.dataSource = self;
    self.pickerView.delegate = self;
    self.pickerView.showsSelectionIndicator = YES;
    [self.viewaddSubview:self.pickerView];
    
    self.button = [UIButtonbuttonWithType:UIButtonTypeRoundedRect];
    self.button.frame = CGRectMake(110, 220, 100, 40);
    [self.buttonsetTitle:@"ok"forState:UIControlStateNormal];
    [self.buttonaddTarget:selfaction:@selector(buttonPressed) forControlEvents:UIControlEventTouchUpInside];
    [self.viewaddSubview:self.button];
    
    self.label = [[[UILabelalloc] initWithFrame:CGRectMake(60, 280, 200, 40)] autorelease];
    self.label.textAlignment = UITextAlignmentCenter;
    [self.viewaddSubview:self.label];
}

- (void)buttonPressed
{
    NSInteger prov = [self.pickerViewselectedRowInComponent:0];
    NSInteger city = [self.pickerViewselectedRowInComponent:1];
    
    self.label.text = [NSStringstringWithFormat:@"[%@ : %@]", [self.provArrayobjectAtIndex:prov], [arrayobjectAtIndex:city]];
}

- (void)backPressed
{
    [selfdismissModalViewControllerAnimated:YES];
}


// returns the number of 'columns' to display.
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
    return [self.provArraycount];
}

// returns the # of rows in each component..
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
    if (component == 0) {
        return [self.provArraycount];
    }
    
    return [arraycount];
}

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
    if (component == 0) {
        return [self.provArrayobjectAtIndex:row];
    }
    
    return [arrayobjectAtIndex:row];
}

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
    if (component == 0) {
        if (row == 0) {
            array = self.cityArray1;
        } else {
            array = self.cityArray2;
        }
        
        [self.pickerViewreloadComponent:1];
    }
}

- (void)didReceiveMemoryWarning
{
    [superdidReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

- (void)dealloc
{
    [self.buttonrelease];
    [self.labelrelease];
    [self.provArrayrelease];
    [self.cityArray1release];
    [self.cityArray2release];
    [self.pickerViewrelease];
    [superdealloc];
}

@end

     



基于html+python+Apriori 算法、SVD(奇异值分解)的电影推荐算法+源码+项目文档+算法解析+数据集,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档 电影推荐算法:Apriori 算法、SVD(奇异值分解)推荐算法 电影、用户可视化 电影、用户管理 数据统计 SVD 推荐 根据电影打分进行推荐 使用 svd 模型计算用户对未评分的电影打分,返回前 n 个打分最高的电影作为推荐结果 n = 30 for now 使用相似电影进行推荐 根据用户最喜欢的前 K 部电影,分别计算这 K 部电影的相似电影 n 部,返回 K*n 部电影进行推荐 K = 10 and n = 5 for now 根据相似用户进行推荐 获取相似用户 K 个,分别取这 K 个用户的最喜爱电影 n 部,返回 K*n 部电影进行推荐 K = 10 and n = 5 for now Redis 使用 Redis 做页面访问次数统计 缓存相似电影 在使用相似电影推荐的方式时,每次请求大概需要 6.6s(需要遍历计算与所有电影的相似度)。 将相似电影存储至 redis 中(仅存储 movie_id,拿到 movie_id 后还是从 mysql 中获取电影详细信息), 时间缩短至:93ms。 十部电影,每部存 top 5 similar movie 登录了 1-6 user并使用了推荐系统,redis 中新增了 50 部电影的 similar movie,也就是说,系统只为 6 为用户计算了共 60 部电影的相似度,其中就有10 部重复电影。 热点电影重复度还是比较高的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值