美文网首页
简单实用的选择器

简单实用的选择器

作者: ly渐行渐远 | 来源:发表于2016-10-19 11:21 被阅读35次

好长时间没写东西了,这次先写点简单的
这次主要写的是一个自定义的选择器,主要功能就是点击按钮弹出视图控制器,然后根据选择返回需要的值

首先定义一个视图控制器

.h文件
#import <UIKit/UIKit.h>

@interface SelectViewController : UIViewController

@property (nonatomic, retain) UITableView *tableView;

@end

.m的实现

.m文件
#import "SelectViewController.h"

@interface SelectViewController ()<UITableViewDataSource,UITableViewDelegate,UIGestureRecognizerDelegate>
{
    NSMutableArray *_array;
}
@end

@implementation SubBrandViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    UITapGestureRecognizer *tapGR = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dismiss)];
    tapGR.delegate = self;
    [self.view addGestureRecognizer:tapGR];
//需要弹出视图的位置
    _tableView = [[UITableView alloc] initWithFrame:CGRectMake(50, 100, 600, 590)];
    [self.view addSubview: _tableView];
    _tableView.delegate = self;
    _tableView.dataSource = self;
    _tableView.separatorInset = UIEdgeInsetsZero;
    _tableView.layer.cornerRadius = 10;
    [[UIApplication sharedApplication]setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
    self.view.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0.3];
    
//创建需要的数据,可以通过网络请求获取
    _array = [[NSMutableArray alloc] initWithObjects:@"1",@"2",@"3",@"4",@"5", nil];
}

#pragma mark --UITableView delegate and datasource
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *cellId= @"SelectCell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellId];
    if (!cell) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellId];
    }
    cell.textLabel.text = _array[indexPath.row];
    cell.textLabel.textColor = [UIColor colorWithRed:0.26f green:0.64f blue:0.84f alpha:1.00f];
    cell.textLabel.font = [UIFont boldSystemFontOfSize:18];
    cell.textLabel.textAlignment = NSTextAlignmentCenter;
    return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    
    NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:[_array objectAtIndex:indexPath.row],@"Value",nil];
    [[NSNotificationCenter defaultCenter] postNotificationName:@"SelectValue" object:nil userInfo:dict];
    
    self.view.alpha = 0;
    _tableView.alpha = 0;
    [self dismissViewControllerAnimated:YES completion:nil];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return _array.count;
}

-(void)dismiss{
    self.view.alpha = 0;
    _tableView.alpha = 0;
    [self dismissViewControllerAnimated:YES completion:nil];
}

#pragma mark -- 获取手势执行的View
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
    NSLog(@"%@",NSStringFromClass([touch.view class]));
    // 若为UITableViewCellContentView(即点击了tableViewCell),则不截获Touch事件
    if ([NSStringFromClass([touch.view class]) isEqualToString:@"UITableViewCellContentView"]) {
        return NO;
    }
    return  YES;
}
#pragma mark -- Others
- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
}
@end

最后就是在需要得到值控制器中得到通知

//得到通知
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(getSelectValue:) name:@"SelectValue" object:nil];

//实现通知方法
- (void)setSubBrandValue:(NSNotification *)info{
        //得到传过来的值
       NSString *string = [[info userInfo] objectForKey:@"Value"] ;
  }

相关文章

  • 简单实用的选择器

    好长时间没写东西了,这次先写点简单的这次主要写的是一个自定义的选择器,主要功能就是点击按钮弹出视图控制器,然后根据...

  • jQuery选择器的详细

    本文只简单的介绍jQuery选择标签的方法简单实用适用于刚入门的新手.不解释具体的. 1. 使用 CSS 选择器来...

  • CSS选择器

    css选择器 CSS选择器可以简单分为三类:简单选择器、伪元素选择器、组合选择器 简单选择器 标签选择器 标签选择...

  • 1.4.2选择器

    1.4.2.1简单选择器 选择器 简单选择器 伪元素选择器 组合选择器 标签选择器 类选择器 .classname...

  • css选择器

    css最实用的五种选择器: 元素选择器 id选择器 后代选择器 群组选择器 块与内联: 块元素:独占一行。如:di...

  • CSS简明教程——选择器

    简单选择器 属性选择器 伪类与伪元素 组合选择器 1. 简单选择器 标签选择器 类选择器 HTML: CSS: I...

  • 简单选择器

    选择器 ·简单选择器 标签选择器 p{color:blue;} 类选择器 .className .special{...

  • 前端笔记(7)css选择器(一)

    选择器分类 简单选择器:针对某一特征判断是否选中元素。 复合选择器:连续的简单选择器,根据元素特征判断是否选中单个...

  • css选择器

    选择器 简单选择器 .class id tagname * [attr=v] : :: :not 复合选择器 <简...

  • 「CSS 」选择器

    选择器简单选择器标签选择器类选择器id 选择器通配符选择器属性选择器伪类选择器其他选择器伪元素选择器组合选择器选择...

网友评论

      本文标题:简单实用的选择器

      本文链接:https://www.haomeiwen.com/subject/xlcxuttx.html