常用控件 的 常用属性和方法 总结(1)

本文详细介绍了iOS开发中常用的UI控件配置与使用方法,包括UITableView、UIScrollView等,并讲解了如何实现数据源协议及代理模式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#define MAS_SHORTHAND_GLOBALS

#import "Masonry.h"


(1)表格式图   UITableView  

(2)  滚动视图 UIScrollView

(3)  文本编辑框 UITextField

(4)  书页控制 UIPageControl

(5)  加减控件   UIStepper

(6)  进度条 UIProgressView  

(7)  滑动条 UISlider

(8)  开关 UISwitch

(9)  忙提示 UIActivityIndicatorView  

(10) 分段控制器 UISegmentedControl


dataSource是数据源协议,用来连接数据库,重用池等的。

delegate是代理函数协议

self.tableView.delegate = A类创建的对象 ; self.tableView.dataSource = self ; 

表示:A类实现了这个tableView的代理协议,self(当前类对象)实现了tableView的数据源协议。


——————————————————————————————————————————————————————

 (1)  表格式图   UITableView  


    //弹簧开关

    _table.bounces =NO;


    //滚动指示条风格设置 -黑色 白色

    _scro.indicatorStyle =UIScrollViewIndicatorStyleBlack;


    //隐藏滚动指示条

    _scro.showsVerticalScrollIndicator =NO//竖向

    _scro.showsHorizontalScrollIndicator =NO; //横向


    //开启自动滚动到最开始(当只有一个滚动视图时适用)

    _scro.scrollsToTop =YES;


    //内边距 =图片边缘 视图框 的距离

    _scro.contentInset =UIEdgeInsetsMake(20,20, 20,20);


 //数据源协议:dataSoure专门负责数据的展示逻辑

    _table.dataSource =self;


#pragma mark - 协议方法   <UITableViewDataSource>

/* 

UITableView需要⼀一个数据源(dataSource)来显示数据,没有设置数据源的UITableView只是个空壳 ,

凡是遵守UITableViewDataSource协议的OC对象,都可以是UITableView的数据源 

*/

//展示数据的过程

//1.一共有多少个分组,默认不写此方法,为1

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{

    return2;   // 2

}

//2.每个分组中有多少行数据(必须实现)

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{

    return100;   //100

}

//3.每一行什么样子(必须实现)

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{


    NSInteger section = indexPath.section ;// 获取组数

    NSInteger row = indexPath.row//获取行数

/*重用机制:

     问题:100行数据,就要创建内存块100次,释放内存块100次。消耗资源

     现象:同一时间,界面上最多显示17行数据。

 向上滚动时,旧的cell会隐藏起来,新的cell会出现。而cell的结构一样,只是内容不一样。

     解决:把旧的隐藏的cell放到一个容器里,当新的cell将要出现时,去容器里找一下有没有结构一样的旧cell

拿出来改一改,显示出来。

    */

重用方式一:

       [

        //代理方法1dataSoure专门负责数据的展示逻辑

    _table.dataSource =self;

    ]

    //从重用池中取出一个特定cell,赋值给 新建的cell对象

    UITableViewCell *cell = [tableViewdequeueReusableCellWithIdentifier:@"Nike"];

    //如果cell指针为空,即重用池里没有这个特定指针

    if (cell ==nil) {

        //新建一个cell

        cell = [[UITableViewCellalloc]initWithStyle:UITableViewCellStyleDefaultreuseIdentifier:@"Nike"];

    }

/*  @(indexPath.row)获取每行的值 stringValue  转换成NSString类型  */

    cell.textLabel.text =@(indexPath.row).stringValue//打印每行数据

    if(row ==4){  //通过颜色测试查看重用效果,颜色相同表示用了同一个cell

        cell.backgroundColor = [UIColorredColor];

    }


重用方式二:

[

    tableV.dataSource =self//连接

     //注册一个特定的celltableView

    [tableV registerClass:[UITableViewCellclassforCellReuseIdentifier:@“Nike”];

]


//这个新的重用方法,简化了老式方法的判断步骤(是否存在)

   /*@(indexPath.row)获取每行的值 stringValue 转换成NSString类型 */

    cell.textLabel.text =@(indexPath.row).stringValue//打印每行数据

    if(row ==4){  //通过颜色测试查看重用效果,颜色相同表示用了同一个cell

        cell.backgroundColor = [UIColorredColor];

    }


    return cell;

}



(2)  滚动视图 UIScrollView


  //设置缩放的比率

    _scro.minimumZoomScale =0.5;

    _scro.maximumZoomScale =2;

   //代理

    _scroV.delegate =self;


    //关闭弹簧

    _scro.bounces =NO;




#pragma mark - 协议方法

//滚动视图内,哪个视图可以接受手势缩放操作 Alt

-(UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{

    return [self.view viewWithTag:100]; //方式一,通过图片标识获取图片

    return _imaV; //方式二,获取局部变量

}


//视图滚动时触发

-(void)scrollViewDidScroll:(UIScrollView *)scrollView{

    //contentofSet:内容的偏移量

    NSLog(@"坐标:%@",NSStringFromCGPoint(scrollView.contentOffset));

}



(3) 编辑框 UITextField

//设置边框风格-圆角

    _textF.borderStyle =UITextBorderStyleRoundedRect;

//默认输入提示:请输入密码

    _textF.placeholder =@"请输入密码";

//清空内容按钮,在编辑时出现

    [_textFsetClearButtonMode:UITextFieldViewModeWhileEditing];

//光标切入,输入框清空

    [_textF setClearsOnBeginEditing:YES];

//内容为密文

    [_textF setSecureTextEntry:YES];

/键盘类型:纯英文+符号   样式:黑色

    [_text setKeyboardType:UIKeyboardTypeASCIICapable];

    [_text setKeyboardAppearance:UIKeyboardAppearanceDark];

    //键盘返回按钮:GO

    [_text setReturnKeyType:UIReturnKeyGo];


_textFiled.delegate =self//代理



// 触摸 监听事件  (不是协议方法)

-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{

    //根据标签获取对象

    UITextField *tf = (UITextField*)[self.viewviewWithTag:100];

    

        [tfresignFirstResponder];//注销第一响应者。触摸空白位置,软键盘消失

[tfbecomeFirstResponder];  //编程第一响应者。触摸空白位置,软键盘显示


    //UIView可以强制让内部的所有子视图,取消编辑状态

    [self.viewendEditing:YES]; //是否强制取消编辑

}


#pragma mark - 协议  <UITextFieldDelegate>


//强制只能输入字母

-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{

    if([stringisEqualToString:@""]){

        returnYES//@“”空代表 退格键

    }

    //通过判断输入的字符的ASCII码,来判断是否是英文

    constchar *s = [string cStringUsingEncoding:NSUTF8StringEncoding];

    

    return (*s >='a' && *s<='z')||(*s >='A' && *s<='Z');

}


//编辑框显示

-(BOOL)textFieldShouldReturn:(UITextField *)textField{

    //1.软键盘消失

    [_textFiledresignFirstResponder];

    //2.把文本框的内容显示在屏幕中心的一个label

    _label.text =_textFiled.text;

    return YES;

}


(4) 书页控制 UIPageControl

    _pc.numberOfPages =9//总页数

    _pc.pageIndicatorTintColor = [UIColorgreenColor];  //底色颜色

    _pc.currentPage =5//当前页

    _pc.currentPageIndicatorTintColor = [UIColorblueColor]; //当前页颜色


(5) 加减控件   UIStepper

     _step.minimumValue =0//最小值  

     _step.maximumValue =100//最大值

     _step.stepValue =20;  //每次变量

     _step.wraps =YES//循环


(6) 进度条 UIProgressView  

    _pv.progress =0//初始值

    _pv.progressTintColor = [UIColorredColor]; //左颜色

    _pv.trackTintColor = [UIColorlightGrayColor]; //右颜色

(进度条和滑动条要关联使用, 起始值- 结尾 : 0 - 1 )

 - - - 方法

   [[UIProgressViewalloc]initWithProgressViewStyle:UIProgressViewStyleBar]; //初始化


(7) 滑动条 UISlider

    _slider.thumbTintColor = [UIColorblueColor];  //圆球颜色

    _slider.maximumTrackTintColor = [UIColororangeColor]; //轨道颜色

    _slider.minimumTrackTintColor = [UIColorblackColor]; //已划过轨道颜色

    _slider.maximumValue =1//最大值

    _slider.minimumValue =0.1//最小值  

    . value  //获取值


(8) 开关 UISwitch

    _sw.on =YES; //默认开的状态

     _sw.thumbTintColor = [UIColorredColor];  //球颜色

    _sw.onTintColor = [UIColororangeColor];  //开时颜色

     .isOn //获取值(BOOL 类型)

 

(9) 忙提示 UIActivityIndicatorView  

      _aiv.color = [UIColorgreenColor]; //图标颜色

     _aiv.hidesWhenStopped =NO//动画停止时不隐藏


 - - - 方法

   [_ivstartAnimating];  //动画启动

   [_ivstopAnimating]; //动画停止

     //初始化 白色大图标

     [[UIActivityIndicatorViewalloc]initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge]; 



(10) 分段控制器 UISegmentedControl

     _segment.selectedSegmentIndex =2//默认选项 2为数组下标


    [_segment insertSegmentWithTitle:@"工具"atIndex:2animated:YES];//数组下标2添加新选项


- - -方法

   //初始化 ,传入数组

       [[UISegmentedControlalloc] initWithItems:数组];  

   //获取当前选中的题目

    NSString *title = [sendertitleForSegmentAtIndex:sender.selectedSegmentIndex];


  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值