zoukankan      html  css  js  c++  java
  • Ios中checkBox

    //使用tableview来进行布局checkBox.便于全选,全不选
    //radiobutton 适合用RadioButton

    #import <UIKit/UIKit.h> @interface CheckView : UIView<UITableViewDataSource,UITableViewDelegate> - (id)initWithFrame:(CGRect)frame Data:(NSArray *)data; -(void)CkNotAllSelect; -(void)CkAllSelect; @end #import "CheckView.h" #import "CommonButton.h" #define Kcount 3 @interface CheckView (){ UITableView *_tableview; } @property(nonatomic,retain)NSArray *MyData; @property(nonatomic,retain)NSMutableArray *chooseArrary; @end @implementation CheckView - (id)initWithFrame:(CGRect)frame Data:(NSArray *)data { self = [super initWithFrame:frame]; if (self) { self.MyData=data; _tableview=[UITableView TableViewWithFrame:self.bounds style:UITableViewStylePlain backgroundColor:[UIColor clearColor] delegate:self separatorStyle:UITableViewCellSeparatorStyleSingleLine]; _tableview.rowHeight=60; [self addSubview:_tableview]; self.chooseArrary =[NSMutableArray arrayWithCapacity:0]; for (int i=0; i<data.count; i++) { [self.chooseArrary addObject:[NSNumber numberWithBool:NO]]; } } return self; } -(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{ return 1; } -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ return self.MyData.count%Kcount==0?self.MyData.count/Kcount:self.MyData.count/Kcount+1; } -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ static NSString *cellIndentify=@"CheckView"; UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:cellIndentify]; if (cell==nil) { cell=[[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIndentify] autorelease]; } int row=indexPath.row*Kcount; int width=tableView.bounds.size.width/Kcount; CGRect leftRect,rect=CGRectMake(0, 0, tableView.bounds.size.width, tableView.rowHeight); for(int i=row;i<row+Kcount;i++){ if(i>=self.MyData.count) break; else{ CGRectDivide(rect, &leftRect, &rect, width, CGRectMinXEdge); CommonButton *btn=[[CommonButton alloc] initWithFrame:leftRect]; [btn setTitle:self.MyData[i] forState:UIControlStateNormal]; BOOL flag=[[self.chooseArrary objectAtIndex:i] boolValue]; if (flag) { [btn setImage:[UIImage imageNamed:@"radio_selected"] forState:UIControlStateNormal]; } else{ [btn setImage:[UIImage imageNamed:@"radio_normal"] forState:UIControlStateNormal]; } [btn addTarget:self action:@selector(click:) forControlEvents:UIControlEventTouchUpInside]; btn.tag=i; [cell addSubview:btn]; } } return cell; } -(void)click:(CommonButton *)btn{ NSLog(@"-->%zi",btn.tag); int tag=btn.tag; BOOL flag=[[self.chooseArrary objectAtIndex:tag] boolValue]; if (flag) { [self.chooseArrary replaceObjectAtIndex:tag withObject:[NSNumber numberWithBool:!flag]]; [btn setImage:[UIImage imageNamed:@"radio_normal"] forState:UIControlStateNormal]; } else{ [self.chooseArrary replaceObjectAtIndex:tag withObject:[NSNumber numberWithBool:!flag]]; [btn setImage:[UIImage imageNamed:@"radio_selected"] forState:UIControlStateNormal]; } } -(void)CkAllSelect{ for (int i=0; i<self.MyData.count;i++) { [self.chooseArrary replaceObjectAtIndex:i withObject:[NSNumber numberWithBool:YES]]; } [_tableview reloadData]; } -(void)CkNotAllSelect{ for (int i=0; i<self.MyData.count;i++) { [self.chooseArrary replaceObjectAtIndex:i withObject:[NSNumber numberWithBool:NO]]; } [_tableview reloadData]; } - (void)dealloc { [_chooseArrary release]; [_MyData release]; [super dealloc]; } @end
    - (void)viewDidLoad
    {
        [super viewDidLoad];
        // Do any additional setup after loading the view, typically from a nib.
    //    [self RadioButtonSelect];
    //    UIButton *btn=[UIButton buttonWithType:UIButtonTypeRoundedRect];
    //    btn.frame=CGRectMake(0, 100, 50,50);
    //    [self.view addSubview:btn];
    //    [btn addTarget:self action:@selector(click:) forControlEvents:UIControlEventTouchUpInside];
           NSArray *arr=@[@"标题1",@"标题2",@"标题3",@"标题4"];
        CheckView *checkView=[[CheckView alloc] initWithFrame:CGRectMake(0, 0, 320, 200) Data:arr];
        _CK=checkView;
        [self.view addSubview:checkView];
        [checkView release];
      
        
    }
  • 相关阅读:
    谷歌 colab调用 Kaggle 数据集
    TensorFlow/Keras binary_crossentropy损失函数
    R语言 pivot_longer 图表变换
    R语言 ggplot2 柱状图
    R语言 ggplot2 笔记
    Bash 批量删除指定后缀的文件
    MacBook 风扇控制软件 Macs Fan Control
    R语言 dplyr selec 辅助函数
    R语言一次性更新全部packages
    R语言 glue 版本冲突
  • 原文地址:https://www.cnblogs.com/gcb999/p/3290918.html
Copyright © 2011-2022 走看看