IOS课程笔记[4-5] 计算器实现与更换主题 的使用

计算

控件介绍

文本输入

  • 设置键盘格式为NumberPad
  • 字符串与数字转换方法 NSInteger num2 =[str2 integerValue];

弹窗控件

  • UIAlertController 新版本弹窗
 UIAlertController *alert =    [UIAlertController alertControllerWithTitle:@"error" message:@"输入有误" preferredStyle:UIAlertControllerStyleAlert];UIAlertAction *action =[UIAlertAction  actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {NSLog(@"取消");       }];[alert addAction:action];[self presentViewController:alert animated:YES completion:nil];
  • UIAlertView IOS9之前版本
   UIAlertView errView = [[UIAlertView alloc] initWithTitle:@"error" message:message delegate:nil cancelButtonTitle:@"ok" otherButtonTitles:nil, nil];[errView show]

实现逻辑

  NSLog(@" 点击按钮");//达到数字NSString *str1=  self.Num1Text.text;NSString *str2 = self.Num2Text.text;//转为数字NSInteger num1 =[str1 integerValue];NSInteger num2 =[str2 integerValue];//校验if (num1 ==0 || num2 ==0){UIAlertController *alert =    [UIAlertController alertControllerWithTitle:@"error" message:@"输入有误" preferredStyle:UIAlertControllerStyleAlert];UIAlertAction *action =[UIAlertAction  actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {NSLog(@"取消");}];[alert addAction:action];[self presentViewController:alert animated:YES completion:nil];return ;}//相加NSInteger result =num1+num2;//展示结果self.ResultLabel.text =[NSString stringWithFormat:@"%zd",result];

切换 主题

使用控件

  • UISwitch 开关组件
  • UISegmentedControl多选框

基本用法

-addTarget绑定点击或者切换事件

[sc addTarget:self action:@selector(changeThemeBystring:) forControlEvents:UIControlEventValueChanged];

代码实现

-(void) loadTopView{//添加文本UILabel *lb=[[UILabel alloc] init];[lb setText:@"更换主题"];[lb setFrame:CGRectMake(5, 0, 400, 40)];[self.topView addSubview:lb];//开关UISwitch *sw =[[UISwitch alloc] init];[sw setFrame:CGRectMake(200, 0, 200, 40)];[sw addTarget:self action:@selector(changeTheme:) forControlEvents:UIControlEventTouchUpInside];[self.topView addSubview:sw];//多选框UISegmentedControl *sc =[[UISegmentedControl alloc] initWithItems:@[@"yellow",@"red",@"green"]] ;[sc setFrame:CGRectMake(5, 55, 300, 40)];[sc addTarget:self action:@selector(changeThemeBystring:) forControlEvents:UIControlEventValueChanged];[self.topView addSubview: sc];//控件位置[self.topView  setCenter:CGPointMake(self.view.frame.size.width/2, self.view.frame.size.height/2) ];}#pragma mark 更换主题- (void)changeTheme:(UISwitch *)sw{if(sw.isOn){self.view.backgroundColor= [UIColor whiteColor];}else{self.view.backgroundColor =[UIColor darkGrayColor];}}- (void)changeThemeBystring:(UISegmentedControl  *)sg{NSLog(@"%@",sg);switch  (sg.selectedSegmentIndex){case 0:            [self changeThemeBycolor:[UIColor yellowColor]];break;case 1:[self changeThemeBycolor:[UIColor redColor]];break;case 2:[self changeThemeBycolor:[UIColor greenColor]];break;          }}

##效果展示
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/160560.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构-----红黑树的插入

目录 前言 红黑树的储存结构 一、节点旋转操作 左旋(Left Rotation) 右旋(Right Rotation) 二、插入节点 1.插入的是空树 2.插入节点的key重新重复 3.插入节点的父节点是黑色 4.插入节点的父节点是红色 4.1父节点是祖父…

软考-网络安全体系与网络安全模型

本文为作者学习文章,按作者习惯写成,如有错误或需要追加内容请留言(不喜勿喷) 本文为追加文章,后期慢慢追加 by 2023年10月 网络安全体系相关安全模型 BLP机密性模型 BLP(Biba-格雷泽-麦克拉伦&#x…

嵌入式平台的电源总结

本文引注: https://mp.weixin.qq.com/s/PuSxHDFbJjjHEReukLSvyg 1.AC的定义 Alternating Current(交流)的首字母缩写。AC是大小和极性(方向)随时间呈周期性变化的电流。电流极性在1秒内的变化次数被称为频率,以Hz为单位…

Sql Server 数据库中的所有已定义的唯一约束 (列名称 合并过了)

查询Sql Server Database中的唯一约束 with UniqueBasic as (SELECTtab.name AS TableName, -- 表名称idx.name AS UniqueName, -- 唯一约束的名称col.name AS UniqueFieldName -- 唯一约束的表字段FROMsys.indexes idxJOIN sys.index_columns idxColON (idx.object_id idxCo…

【分享Python代码】图片转化为素描画

哈喽,大家好,我是木易巷~ 代码生成效果图 原图: 生成图: 原图: 生成图: 准备工作 Python编程首先需要安装环境,下面是详细步骤: 会的小伙伴可自行跳过,代码在最后 1…

spring boot RabbitMq基础教程

RabbitMq 由于RabbitMQ采用了AMQP协议,因此它具备跨语言的特性。任何语言只要遵循AMQP协议收发消息,都可以与RabbitMQ交互。并且RabbitMQ官方也提供了各种不同语言的客户端。 但是,RabbitMQ官方提供的Java客户端编码相对复杂,一般…

idea使用Spring Initializer创建springboot项目的坑【保姆级教学】

项目场景: 提示:这里先简述项目创建后遇到的问题和解决方案: idea 使用 Spring Initializer 创建springboot项目后, 有以下问题: ① 右键没有Run ② 右键New新建文件发现无Java Class选项 然后解决掉 ①② 问题后出…

总结:JavaEE的Servlet中HttpServletRequest请求对象调用各种API方法结果示例

总结:JavaEE的Servlet中HttpServletRequest请求对象调用各种API方法结果示例 一方法调用顺序是按照英文字母顺序从A-Z二该示例可以用作servlet中request的API参考,从而知道该如何获取哪些路径参数等等三Servlet的API版本5.0.0、JSP的API版本:…

WordPress 常规设置页面调用媒体中心上传图片插入URL(新版可用)

首先,我们需要在主题或插件文件夹中创建一个 JavaScript 文件(如:media-uploader.js),该文件中包含如下代码。 /*** 媒体中心上传 js **/ jQuery(document).ready(function($){var mediaUploader;$(#upload_image_but…

软件工程与计算总结(十七)软件构造

一.概述 1.定义 软件构造是以编程为主的活动,类似于软件实现。但软件构造又不止编程这么简单,除了核心的编程任务之外,还设计详细设计(数据结构与算法设计)、单元测试、集成与集成测试以及其他活动~ 2.软件构造是设计…

多维时序 | MATLAB实现SSA-CNN-LSTM-Attention多变量时间序列预测(SE注意力机制)

多维时序 | MATLAB实现SSA-CNN-LSTM-Attention多变量时间序列预测(SE注意力机制) 目录 多维时序 | MATLAB实现SSA-CNN-LSTM-Attention多变量时间序列预测(SE注意力机制)预测效果基本描述模型描述程序设计参考资料 预测效果 基本描…

【vim 学习系列文章 10 -- vim 将代码中空格高亮显示方法】

文章目录 vim 高亮空格使用背景如何配置vim 可以自动显示空格呢?vim highlight 命令使用介绍vim 空白行的处理vim match 命令详细介绍 vim 高亮空格使用背景 开发人员在编写代码之后,在review通过之后会将代码推到服务器然后merge,但是有些代…

uni-app--》基于小程序开发的电商平台项目实战(五)

🏍️作者简介:大家好,我是亦世凡华、渴望知识储备自己的一名在校大学生 🛵个人主页:亦世凡华、 🛺系列专栏:uni-app 🚲座右铭:人生亦可燃烧,亦可腐败&#xf…

【C语言进阶】自定义类型:结构体,枚举,联合

自定义类型:结构体,枚举,联合 1.结构体1.1结构体类的基础知识1.2结构的声明1.3特殊的声明1.4结构的自引用1.5结构体变量的定义和初始化1.6结构体内存对齐1.7修改默认对齐1.8结构体传参 2.段位2.1什么是段位2.2段位的内存分配2.3位段的跨平台问…

【Spring Boot】RabbitMQ消息队列 — RabbitMQ入门

💠一名热衷于分享知识的程序员 💠乐于在CSDN上与广大开发者交流学习。 💠希望通过每一次学习,让更多读者了解我 💠也希望能结识更多志同道合的朋友。 💠将继续努力,不断提升自己的专业技能,创造更多价值。🌿欢迎来到@"衍生星球"的CSDN博文🌿 🍁本…

Chrome使用本地修改过的js替换原js内容

步骤 1.进入开发人员工具:按F12 或 按ctrlshitfi 或 菜单“更多工具”->“开发人员工具” 2.在“源代码/来源”页面找到需要更改的js文件,“右键”->“替换内容” 3.在弹出的标签点击“选择文件夹”来选择一个存放内容的本地文件夹 4.弹出的询问标…

Excel——对其他工作表和工作簿的引用

一、引用其他sheet页表区域 若希望在公式中引用其他工作表的单元格区域,可以在公式编辑状态下,通过鼠标单击相应的工作表标签,然后选择相应的单元格区域。 例1 跨sheet页引用其他工作表区域 如图1所示的工作表Sheet2为工资表。 在Sheet1表…

【Golang】grpc环境踩的坑

关于’protoc-gen-go’ 不是内部或外部命令 这个问题的出现是因为没有这个文件导致的 这个文件要通过我们下载的google.golang.org这个文件编译生成的 这里建议下载google提供的grpc包 protobuf的源码: git clone https://github.com/golang/protobuf 下载好之后进…

如何把视频压缩变小?

如何把视频压缩变小?大家都知道,视频一般都伴随着很大的文件体积,:尤其是现在的视频大多是高清晰度的,因此视频文件的体积就更加的大,视频体积太大会给我们带来很多的不便,主要是以下这几点&…

诚迈科技董事长王继平出席中国(太原)人工智能大会并发表演讲

10月14日—15日,2023中国(太原)人工智能大会在山西省太原市举办。诚迈科技在大会上全面展示了其在人工智能领域的一系列创新技术与解决方案,诚迈科技董事长、统信软件董事长王继平受邀出席产业数字化转型论坛并发表主题演讲&#…