前言
本篇博客是我在学习UI部门内容的学习条记,盼望对你有所帮助,如有错误,还请指出!
步进器和分栏控制器
步进器(Stepper)和分栏控制器(Tab Controller)是iOS开发中常用的两种控件。
步进器通常用于允许用户增加或淘汰数值,比方调整音量或选择数目。它通常由一个加号按钮和一个减号按钮构成,用户可以通过按这些按钮来逐步增加或淘汰数值。步进器还可以具有最小值和最大值,以确保用户不能选择超出指定范围的数值。步进器常用于购物车等必要增减数目的场景,比方增减房间数和人数。
分栏控制器则是iOS中用于在多个视图控制器之间切换的控件。它通常出现在屏幕底部,每个分栏对应一个视图控制器,用户可以通过点击分栏来切换差异的视图控制器。分栏控制器常用于主界面的计划,比方在社交应用中切换"消息"、“联系人”、"动态"等差异的界面。
下面给出代码示例:
ViewController.h文件:
- #import <UIKit/UIKit.h>
- @interface ViewController : UIViewController
- {
- //定义一个步进器对象(步进器:按照一定的数字来调整某个数据,比如每次调整音量时以5为单位)
- UIStepper* _stepper;
-
- //定义一个分栏控制器
- UISegmentedControl* _segControl;
- }
- //定义属性
- @property(retain, nonatomic)UIStepper* stepper;
- @property(retain, nonatomic)UISegmentedControl* segControl;
- @end
复制代码 ViewController,m文件:
- #import "ViewController.h"
- @interface ViewController ()
- @end
- @implementation ViewController
- @synthesize stepper = _stepper;
- @synthesize segControl = _segControl;
- - (void)viewDidLoad {
- [super viewDidLoad];
-
- //创建步进器对象
- _stepper = [[UIStepper alloc] init];
-
- //设置步进器的位置和大小(其宽高不可变)
- _stepper.frame = CGRectMake(150, 100, 80, 40);
-
- //设置步进器的最小值
- _stepper.minimumValue = 0;
-
- //设置步进器的最大值
- _stepper.maximumValue = 100;
-
- //设置步进器的当前值(不设置的话 默认为0)
- _stepper.value = 50;
-
- //设置步进器的步进制,即每次向前或向后步进的步伐值(默认为1)
- _stepper.stepValue = 5;
-
- //是否可以重复响应事件操作(一直按着可以持续增大或减小)
- _stepper.autorepeat = YES;
-
- //是否将步进结果通过事件函数响应出来(只有在stepValue设置为YES时,才有效果)
- //(设置为YES时,当我们一直按着步进器进行持续增大或减小时,他会通过下面的事件函数将每次调整后的value都打印出来;设置为NO,则不会,但其实步进器的当前值还是发生了变化的)
- _stepper.continuous = YES;
-
- //添加一个事件函数
- //p1:函数实现体 p2:函数体 p3:事件值改变
- [_stepper addTarget:self action:@selector(stepChanged) forControlEvents:UIControlEventValueChanged];
-
- [self.view addSubview:_stepper];
-
- //创建一个分栏控件
- _segControl = [[UISegmentedControl alloc] init];
-
- //设置分栏控件的位置和大小(宽度可变,高度不可变)
- _segControl.frame = CGRectMake(50, 200, 300, 40);
-
- //添加一个按钮元素(多个按钮元素会平分分栏控件的宽度)
- [_segControl insertSegmentWithTitle:@"黄昏" atIndex:0 animated:NO];
-
- //p1:按钮选项文字 p2:按钮的索引位置 p3:是否插入动画效果
- [_segControl insertSegmentWithTitle:@"约尔" atIndex:1 animated:NO];
-
- [_segControl insertSegmentWithTitle:@"阿尼亚" atIndex:2 animated:NO];
-
- [_segControl insertSegmentWithTitle:@"邦德" atIndex:3 animated:NO];
-
- //设置当前默认按钮索引的位置
- _segControl.selectedSegmentIndex = 0;
-
- [_segControl addTarget:self action:@selector(segChanged) forControlEvents:UIControlEventValueChanged];
-
- [self.view addSubview:_segControl];
- }
- - (void)stepChanged
- {
- NSLog(@"step pressed!当前_stepper的值为%f", _stepper.value);
- }
- - (void)segChanged
- {
- NSLog(@"当前索引位置为%d", _segControl.selectedSegmentIndex);
- }
- @end
复制代码 运行结果:


警告对话框和等候提示器
警告对话框(Alert Dialog)主要用于提醒用户关于程序中特定变乱的信息。比方,当用户的操作可能会导致数据丢失时,程序会弹出一个警告对话框,询问用户是否真的要实验这个操作。在JavaScript中,你可以使用window.alert()方法来创建一个警告对话框。在iOS中,你可以使用UIAlertController类来创建一个警告对话框。
等候提示器(Loading Indicator)则主要用于在程序必要花费一些时间来处置惩罚任务,比方下载文件大概加载数据时,告诉用户程序正在处置惩罚,让用户知道程序没有冻结,只是在实验必要一些时间的操作。在许多情况下,等候提示器会以一个旋转的圆圈的形式出现。
代码示例:
[code]#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
@synthesize activityInicator = _activityInicator;
- (void)viewDidLoad {
[super viewDidLoad];
for (int i = 0; i < 2; i++)
{
UIButton* btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
btn.frame = CGRectMake(150, 100 + 100 * i, 100, 40);
if (i == 0) {
[btn setTitle "警告对话框⚠️" forState:UIControlStateNormal];
} else if (i == 1) {
[btn setTitle "等待提示器⌛️" forState:UIControlStateNormal];
}
btn.tag = 101 + i;
[btn addTarget:self action selector(pressBtn forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:btn];
}
}
- (void)pressBtn UIButton *)btn
{
if (btn.tag == 101) {
//创建一个UIAlertController对象
//P1:弹出框的标题 P2弹出框的内容
//P3:弹出的警告框的样式为UIAlertControllerStyleAlert(即中心弹出的警告框)
UIAlertController* alertController = [UIAlertController alertControllerWithTitle "警告⚠️" message "你的手机电量过低,即将关机 |