05-按钮的基本使用-开发步骤

  • 从Xcode5开始,图片资源都放到Images.xcassets中进行管理
  • 先添加必须的图片到Images.xcassets中

调整界面尺寸

  • 由于模拟器的默认尺寸是3.5inch,为了避免出现不必要的麻烦,最好将storyboard中的UI界面尺寸也调整为3.5inch

添加4个方向按钮和2个缩放按钮

  • 拖拽按钮到storyboard上
  • 设置按钮的尺寸为35x35

设置按钮的背景图片

  • 按钮是有多种状态的:
  1. normal(普通状态):默认情况, UIControlStateNormal
  2. highlighted(高亮状态):按钮被按下去的时候(手指还未松开), UIControlStateHighlighted
  • 设置按钮在不同状态下的背景图片(为了保证高亮的图片正常显示,必须设置按钮的type为custom)

设置头像按钮

  • 普通状态:红色文字“点我啊”
  • 高亮状态:蓝色文字“摸我干嘛”

跟控制器建立联系

  • 通过修改控件的frame属性就可以修改控件在屏幕上的位置和尺寸
  • 比如点击“向上”按钮,让按钮的y值减小即可

  - (IBAction)top:(UIButton *)sender {

     CGRect btnFrame = self.headBtn.frame;

     btnFrame.origin.y -= 10;

     self.headBtn.frame = btnFrame;

  }

  • 下面代码是错误的,OC语法规定:不允许直接修改对象的结构体属性的成员

   self.headBtn.frame.origin.y -= 10;

去除autolayout

  • 如果发现通过代码无法修改控件的位置或者尺寸时,应该去掉storyboard里面的autolayout功能,这是自iOS6开始出现的特性
  • 顾名思义,autolayout是用来自动布局的,用来束缚控件的位置和尺寸。去掉这个功能,控件的位置和尺寸就不再有一些固定的束缚。

代码创建按钮

  • 在开发过程中,并不是每次都通过storyboard拖控件完成UI界面,因为storyboard上面的界面是“固定死”的,有时候可能会在程序运行过程中动态地添加一些新的控件到界面上
  • 比如QQ的聊天信息,是有人发出一条信息后才动态显示出来的。因此,需要掌握如何用代码动态地添加控件
  • 实际上,storyboard的本质就是根据图形界面描述转成相应的代码
  • 下面演示用代码创建按钮

   // 1.创建一个自定义的按钮

  UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];

  // 2.添加按钮

   [self.view addSubview:btn];

  // 3.设置按钮的位置和尺寸

  btn.frame = CGRectMake(100, 100, 100, 100);

  // 4.监听按钮点击(点击按钮后就会调用self的btnClick方法)

  [btn addTarget:self action:@selector(btnClick) forControlEvents:UIControlEventTouchUpInside];

  // 5.设置按钮在默认状态下的属性

  // 5.1.默认状态的背景

   [btn setBackgroundImage:[UIImage imageNamed:@"btn_01"] forState:UIControlStateNormal];

  // 5.2.默认状态的文字

  [btn setTitle:@"点我啊" forState:UIControlStateNormal];

  // 5.3.默认状态的文字颜色

   [btn setTitleColor:[UIColor redColor] forState:UIControlStateNormal];   

  // 6.设置按钮在高亮状态下的属性

  // 6.1.高亮状态的背景

  [btn setBackgroundImage:[UIImage imageNamed:@"btn_02"] forState:UIControlStateHighlighted];

  // 6.2.高亮状态的文字

  [btn setTitle:@"摸我干啥" forState:UIControlStateHighlighted];

  // 6.3.高亮状态的文字颜色

   [btn setTitleColor:[UIColor blueColor] forState:UIControlStateHighlighted];

Storyboard到代码的转换

  // 创建一个自定义的按钮

   UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];

  // 默认状态的背景

   [btn setBackgroundImage:[UIImage imageNamed:@"btn_01"] forState:UIControlStateNormal];

  // 默认状态的文字

   [btn setTitle:@"点我啊" forState:UIControlStateNormal];

  // 默认状态的文字颜色

   [btn setTitleColor:[UIColor redColor] forState:UIControlStateNormal];

  

 

转载于:https://www.cnblogs.com/YangFuShun/p/4317923.html

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

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

相关文章

【机器学习】sklearn数据特征预处理:归一化和标准化

归一化处理 特点:通过对原始数据进行变换把数据映射到(默认为[0,1])之间 from sklearn.preprocessing import MinMaxScaler def mm():"""归一化处理:return: NOne"""mm MinMaxScaler(feature_range(2,3))data mm.fit_transform(…

LeetCode 1848. 到目标元素的最小距离

文章目录1. 题目2. 解题1. 题目 给你一个整数数组 nums (下标 从 0 开始 计数)以及两个整数 target 和 start ,请你找出一个下标 i ,满足 nums[i] target 且 abs(i - start) 最小化 。注意:abs(x) 表示 x 的绝对值。…

python环境变量的运用_Windows下python环境变量配置

默认情况下,在windows下安装python之后,系统并不会自动添加相应的环境变量。此时不能在命令行直接使用python命令。1. 首先需要在系统中注册python环境变量:假设python的安装路径为c:\python2.6,则修改我的电脑->属性->高级…

python拆分合并文件_Python 视频文件的分割和合并

import os; import time; os.system(start "wmplayer.exe", "F:\\abc.mp4"); --分割代码 start---- import sys,os; kilobytes 1024; megabytes kilobytes*1024; chunksize int(10*megabytes); def split(fromfile,todir,chunksizechunksize): if not o…

[笔记]Go语言写文件几种方式性能对比

Go语言中写文件有多种方式,这里进行如下几种方式的速度对比: 打开文件,写入内容,关闭文件。如此重复多次打开文件,写入内容,defer 关闭文件。如此重复多次打开文件,重复多次写入内容&#xff0c…

【机器学习】sklearn数据集获取、分割、分类和回归

sklearn数据集1、数据集划分1.1 获取数据1.2 获取数据返回的类型举个栗子:1.3 对数据集进行分割举个栗子:2、 sklearn分类数据集3、 sklearn回归数据集1、数据集划分 机器学习一般的数据集会划分为两个部分: 训练数据:用于训练&a…

LeetCode 1846. 减小和重新排列数组后的最大元素

文章目录1. 题目2. 解题1. 题目 给你一个正整数数组 arr 。请你对 arr 执行一些操作(也可以不进行任何操作),使得数组满足以下条件: arr 中 第一个 元素必须为 1 。任意相邻两个元素的差的绝对值 小于等于 1 ,也就是…

ftp可以传输什么类型文件_FTP文件传输工具-ForkLift for Mac

orklift mac版是一款运行在Mac平台上的FTP文件传输工具。ForkLift拥有经典的两栏界面布局,简洁小巧。且支持FTP,SFTP,WebDAV,S3,iDisk,SMB,AFP和NIS协议,可以方便用户对本地以及远程…

1过程流程图 3 apqp_为什么过程开发的平面布置图要遵循精益原则?

今日话题为什么过程开发的平面布置图要遵循精益原则?问为什么过程开发的平面布置图要遵循精益原则?答工艺工程师根据过程流程图制定平面布置图,采用精益制造的原则,对加工与装配工位、物流路线、存储位置进行规划,以确…

把Scala代码当作脚本运行

1. 在类UNIX系统上作为脚本运行 在类Unix系统上,你可以设置一个shell前导词来执行脚本。如下例: Script.scala #!/usr/bin/env scala !# println("Hello" args(0)) 先输入chmod x Script.scala,确保对Script.scala文件有执行权限。…

LeetCode 1847. 最近的房间(排序离线计算 + 二分查找)

文章目录1. 题目2. 解题1. 题目 一个酒店里有 n 个房间,这些房间用二维整数数组 rooms 表示,其中 rooms[i] [roomIdi, sizei] 表示有一个房间号为 roomIdi 的房间且它的面积为 sizei 。每一个房间号 roomIdi 保证是 独一无二 的。 同时给你 k 个查询&…

用python写一个手机app签到脚本_利用Python实现App自动签到领取积分

要自动签到,最简单的是打开页面分析请求,然后我们用脚本实现请求的自动化。但是发现食行没有页面,只有 APP,这不是一个好消息,这意味着需要抓包处理了。有需要Python学习资料的小伙伴吗?小编整理【一套Python资料、源…

el表达式 循环_EL表达式和JSTL标签库(百战程序员047天)

1.EL表达式介绍:是一种非常简洁的表达式,语法简单,便于使用,灵感来源于ECMAScript和Xpath的表达式语言样式:${表达式}作用:简化jsp中获取作用域或者请求数据的写法。获取请求数据EL表达式1)获取请求数据(1)…

【机器学习】sklearn k-近邻算法

sklearn k-近邻算法1. sklearn k-近邻算法API2. k近邻算法实例-预测入住位置核心思想:你的“邻居”来推断出你的类别定义:如果一个样本在特征空间中的 k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。…

openresty package.path require 报错

在文件中 package.path /usr/local/share/lua/5.1/?.lua;/usr/local/openresty/lualib/resty/?.lua; package.cpath /usr/local/lib/lua/5.1/?.so;执行local mysql require "mysql" --正确local mysql require "resty.mysql" --报错去掉 package.pa…

LeetCode 1849. 将字符串拆分为递减的连续值(回溯)

文章目录1. 题目2. 解题1. 题目 给你一个仅由数字组成的字符串 s 。 请你判断能否将 s 拆分成两个或者多个 非空子 字符串 ,使子字符串的 数值 按 降序 排列,且每两个 相邻子字符串 的数值之 差 等于 1 。 例如,字符串 s "0090089&q…

axure选中后横线切换_Axure8.0|动态面板内容简单切换技巧

无论做web段还是移动端,常常会用到动态面板固定在某个区域来变换内容,达到节省空间的作用,今天分享的就是如何实现这种方式。预览效果:一、元件准备以IT/互联网、设计创作、职场金融这三组为例,所涉及到的元件分别为it…

flutter text 最大长度_Flutter小技巧之TextField换行自适应

无论哪种界面框架输入文本框都是非常重要的控件, 但是发现flutter中的输入框TextField介绍的虽然多,但是各个属性怎么组合满足需要很多文章却说不清楚, 再加上控件版本变更频繁很多功能的介绍都是比较陈旧的属性.现在就需要一个类似微信的输入文本框, 这样一个非常实用的效果fl…

【机器学习】分类算法sklearn-朴素贝叶斯算法

分类算法-朴素贝叶斯算法1. 概率基础2. 朴素贝叶斯介绍3. sklearn朴素贝叶斯实现API4. 朴素贝叶斯算法案例1. 概率基础 概率定义为一件事情发生的可能性:扔出一个硬币,结果头像朝上;某天是晴天 联合概率和条件概率“”: 联合概率…

收集的电影网站

迅播影院-Gvod Player-Gvod电影-迅雷电影下载动漫下载|BT|漫画|动画|游戏 - 极影动漫一路电影网-高清电影下载_1080p电影下载_蓝光电影下载_3d电影下载天天美剧人人影视电影天堂电影FMTorrentProject - Torrent Search EngineBT Kitty - Professional torrent searc…