【iOS】UI学习(三)

种地  论坛元老 | 2024-7-10 19:53:38 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 1091|帖子 1091|积分 3273

前言

本篇博客是我在学习UI部门内容的学习条记,盼望对你有所帮助,如有错误,还请指出!
步进器和分栏控制器

  步进器(Stepper)和分栏控制器(Tab Controller)是iOS开发中常用的两种控件。
  步进器通常用于允许用户增加或淘汰数值,比方调整音量或选择数目。它通常由一个加号按钮和一个减号按钮构成,用户可以通过按这些按钮来逐步增加或淘汰数值。步进器还可以具有最小值和最大值,以确保用户不能选择超出指定范围的数值。步进器常用于购物车等必要增减数目的场景,比方增减房间数和人数。
  分栏控制器则是iOS中用于在多个视图控制器之间切换的控件。它通常出现在屏幕底部,每个分栏对应一个视图控制器,用户可以通过点击分栏来切换差异的视图控制器。分栏控制器常用于主界面的计划,比方在社交应用中切换"消息"、“联系人”、"动态"等差异的界面。
下面给出代码示例:
ViewController.h文件:
  1. #import <UIKit/UIKit.h>
  2. @interface ViewController : UIViewController
  3. {
  4.     //定义一个步进器对象(步进器:按照一定的数字来调整某个数据,比如每次调整音量时以5为单位)
  5.     UIStepper* _stepper;
  6.    
  7.     //定义一个分栏控制器
  8.     UISegmentedControl* _segControl;
  9. }
  10. //定义属性
  11. @property(retain, nonatomic)UIStepper* stepper;
  12. @property(retain, nonatomic)UISegmentedControl* segControl;
  13. @end
复制代码
ViewController,m文件:
  1. #import "ViewController.h"
  2. @interface ViewController ()
  3. @end
  4. @implementation ViewController
  5. @synthesize stepper = _stepper;
  6. @synthesize segControl = _segControl;
  7. - (void)viewDidLoad {
  8.     [super viewDidLoad];
  9.    
  10.     //创建步进器对象
  11.     _stepper = [[UIStepper alloc] init];
  12.    
  13.     //设置步进器的位置和大小(其宽高不可变)
  14.     _stepper.frame = CGRectMake(150, 100, 80, 40);
  15.    
  16.     //设置步进器的最小值
  17.     _stepper.minimumValue = 0;
  18.    
  19.     //设置步进器的最大值
  20.     _stepper.maximumValue = 100;
  21.    
  22.     //设置步进器的当前值(不设置的话 默认为0)
  23.     _stepper.value = 50;
  24.    
  25.     //设置步进器的步进制,即每次向前或向后步进的步伐值(默认为1)
  26.     _stepper.stepValue = 5;
  27.    
  28.     //是否可以重复响应事件操作(一直按着可以持续增大或减小)
  29.     _stepper.autorepeat = YES;
  30.    
  31.     //是否将步进结果通过事件函数响应出来(只有在stepValue设置为YES时,才有效果)
  32.     //(设置为YES时,当我们一直按着步进器进行持续增大或减小时,他会通过下面的事件函数将每次调整后的value都打印出来;设置为NO,则不会,但其实步进器的当前值还是发生了变化的)
  33.     _stepper.continuous = YES;
  34.    
  35.     //添加一个事件函数
  36.     //p1:函数实现体  p2:函数体  p3:事件值改变
  37.     [_stepper addTarget:self action:@selector(stepChanged) forControlEvents:UIControlEventValueChanged];
  38.    
  39.     [self.view addSubview:_stepper];
  40.    
  41.     //创建一个分栏控件
  42.     _segControl = [[UISegmentedControl alloc] init];
  43.    
  44.     //设置分栏控件的位置和大小(宽度可变,高度不可变)
  45.     _segControl.frame = CGRectMake(50, 200, 300, 40);
  46.    
  47.     //添加一个按钮元素(多个按钮元素会平分分栏控件的宽度)
  48.     [_segControl insertSegmentWithTitle:@"黄昏" atIndex:0 animated:NO];
  49.    
  50.     //p1:按钮选项文字  p2:按钮的索引位置  p3:是否插入动画效果
  51.     [_segControl insertSegmentWithTitle:@"约尔" atIndex:1 animated:NO];
  52.    
  53.     [_segControl insertSegmentWithTitle:@"阿尼亚" atIndex:2 animated:NO];
  54.    
  55.     [_segControl insertSegmentWithTitle:@"邦德" atIndex:3 animated:NO];
  56.    
  57.     //设置当前默认按钮索引的位置
  58.     _segControl.selectedSegmentIndex = 0;
  59.    
  60.     [_segControl addTarget:self action:@selector(segChanged) forControlEvents:UIControlEventValueChanged];
  61.    
  62.     [self.view addSubview:_segControl];
  63. }
  64. - (void)stepChanged
  65. {
  66.     NSLog(@"step pressed!当前_stepper的值为%f", _stepper.value);
  67. }
  68. - (void)segChanged
  69. {
  70.     NSLog(@"当前索引位置为%d", _segControl.selectedSegmentIndex);
  71. }
  72. @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 actionselector(pressBtn forControlEvents:UIControlEventTouchUpInside];
        
        [self.view addSubview:btn];
    }
}

- (void)pressBtnUIButton *)btn
{
    if (btn.tag == 101) {
        
        //创建一个UIAlertController对象
        //P1:弹出框的标题  P2弹出框的内容
        //P3:弹出的警告框的样式为UIAlertControllerStyleAlert(即中心弹出的警告框)
        UIAlertController* alertController = [UIAlertController alertControllerWithTitle"警告⚠️" message"你的手机电量过低,即将关机

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

种地

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表