iOS UI基础01

  • 控制器

    • 1.什么是控制器: 任何继承于UIViewController的类, 都称之为控制器
    • 2.控制器的作用: 管理UI界面(负责管理UI界面的创建和一些事件的处理)
  • IBAction
    • 连线方式

      • 1.从"控制器"往"Storyboard"连线
      • 2.从"Storyboard"往"控制器"连线
      • 3.直接在"Storyboard"中往"Storyboard"上的界面顶部连线
      • 4.直接在"Storyboard"中往"Storyboard"上的工具条连线
      • 5.不用先定义方法, 直接从"Storyboard"往"控制器"连线
    • IBAction连线的注意点
      • 1.在Storyboard中拷贝元素的时候需要注意
      • 2.拷贝的同时会将以前的连线一起拷贝
      • 3.一个方法可以很多个控件关联
      • 4.一个控件可以和很多方法进行连线 在开发中, 一般情况下不会这样写
      • 5.如果将按钮关联的方法删除, 运行之后会报一个经典错误 reason: ‘-[ViewController redBtnClick]: unrecognized selector sent to instance 0x7fb4aa618e50‘
      • 6.IBAction只能作为方法的返回值 IBAction == viod
  • UI控件尺寸
    • 大部分UI控件是没有默认的尺寸的, 所以看不见UIButton
    • frame
      • frame是以父控件的左上角为0,0
      • UIButton *btn = [[UIButton alloc] init];
        btn.frame = CGRectMake(100, 100, 100, 100);
        
    • bounds
      • bounds是以自己的左上角为00, 所以一般情况下设置bounds的x/y无效,一般情况使用bounds来修改尺寸。
      • UIButton *btn = [[UIButton alloc] init];
        btn.bounds = CGRectMake(0, 0, 100, 100);
        
    • center
      • 中心点就是控件宽高的交点, 宽高的一半的位置
      • 一般情况下使用center来修改位置
      • UIButton *btn = [[UIButton alloc] init];
        btn.center = CGPointMake(200, 200);
        
  • viewWithTag
    • viewWithTag只能查找当前控件和当前控件的子控件, 不能查找兄弟控件, 或者父控件
    • 查找顺序: 1.先找自己 2.找子控件 3.找间接子控件(孙子..)
    • 利用tag获取对应tag的值
  • 匿名分类

    • 匿名分类和分类的区别

      • 1.匿名分类没有名字, 分类有名称
      • 2.匿名分类不需要有对应的实现, 而分类需要有对应的实现
      • 3.匿名分类可以声明属性, 也可以声明方法, 分类只能声明方法
    • 注意点
      • 以后开发中但是是不需要暴露给外界的属性和方法都卸载匿名分类中
      • 苹果推荐我们将属性写在匿名分类中(延展/ 类扩展)
时间: 2024-10-02 00:54:37

iOS UI基础01的相关文章

iOS开发 - 第01篇 - UI基础 - 01 - 从Storyboard开始学习

前言: 初学iOS编程,谨以此系列博客记录自己学习iOS开发的点滴,并和大家一起交流. 这也第一次写博客,写的不好或不对的地方,欢迎各路大神指出,在此先谢过~ 注:由于自己也刚刚开始学习,前面几篇估计代码量少,也只是贴出部分代码,作为入门知识点记录而已. ---------------------NSRyan于2016年5月10日注 1.UIViewController 每当显示一个新界面时,首先会创建一个新的UIViewController对象,然后创建一个对应的全屏UIView,UIView

iOS UI基础-9.0 UITableView基础

在iOS中,要实现表格数据展示,最常用的做法就是使用UITableView.UITableView继承自UIScrollView,因此支持垂直滚动,而且性能极佳. UITableView有两种样式: 一列显示:UITableViewStylePlain 分组显示:UITableViewStyleGrouped tableView展示数据的过程 1.调用数据源的下面方法得知一共有多少组数据 - (NSInteger)numberOfSectionsInTableView:(UITableView

iOS UI基础-17.0 UILable之NSMutableAttributedString

在iOS开发中,常常会有一段文字显示不同的颜色和字体,或者给某几个文字加删除线或下划线的需求.之前在网上找了一些资料,有的是重绘UILabel的textLayer,有的是用html5实现的,都比较麻烦,而且很多UILabel的属性也不起作用了,效果都不理想.后来了解到NSMuttableAttstring(带属性的字符串),上面的一些需求都可以很简便的实现. NSMuttableAttstring 方法 为某一范围内文字设置多个属性 - (void)setAttributes:(NSDictio

iOS UI基础-1.0加法计算器

1.打开Xcode,新建一个项目 2.Single View Application是最适合初学者的模板 3.填写该应用相关信息 4.搭建UI界面 项目创建完毕后,自动帮我们做了很多配置,也自动生成了很多文件 还自动添加了开发所依赖的框架 项目中这么多文件,哪些是影响着UI界面的呢?在iOS5之前,苹果使用xib文件来描述UI界面,在iOS5之后,苹果采取了更加强大和先进的storyboard文件来描述界面(Xcode5是基于iOS7的)因此,可以得出结论:修改项目中的Main.storyboa

IOS UI基础04

动画 1.头尾式动画 动画开始 [UIView beginAnimations:nil context:nil]; 设置动画时间 [UIView s ! etAnimationDuration:3]; [UIView setAnimationDelegate:self]; 只要写在开始和结束之间的代码, 就会被执行动画 但是: 并不是所有的代码都能够执行动画 只有属性声明中说明了是animatable的属性,才可以执行UIView动画 CGRect tempFrame2 = self.hudLa

iOS UI基础-13.0 数据存储

应用沙盒 每个iOS应用都有自己的应用沙盒(应用沙盒就是文件系统目录),与其他文件系统隔离.应用必须待在自己的沙盒里,其他应用不能访问该沙盒 应用沙盒的文件系统目录,如下图所示(假设应用的名称叫Layer) 模拟器应用沙盒的根路径在: (apple是用户名, 6.0是模拟器版本) /Users/apple/Library/Application Support/iPhone Simulator/6.0/Applications 应用沙盒结构分析 应用程序包:(上图中的Layer)包含了所有的资源

iOS UI基础-6.0 UIActionSheet的使用

UIActionSheet是在iOS弹出的选择按钮项,可以添加多项,并为每项添加点击事件. 使用 1.需要实现UIActionSheetDelegate  协议 @interface NJWisdomCardDetailViewController ()<UIActionSheetDelegate> @end 2.弹出选择按钮框 - (void)showSheet{ UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitl

iOS UI基础控件之UIImageView

一.UIImageView和UIImage UIImageView是iOS中用于显示图片的类,UIImage是用于存储图片数据的类:iOS中几乎所有看到的图片数据都存储在UIImage中,同时所要的图片都是用UIImageView来显示:UIImageView和UIImage关系如下图: 二. 创建UIImageView的两种方式 1.自己设置图片位置和尺寸 "` UIImageView *iv = [[UIImageView alloc] init]; //创建的图片, 没有默认的宽高 iv.

iOS UI基础控件之UIView 详解

UIView 简介 什么是UIView UIView是窗口上的一块区域,是iOS中所有控件的基类,我们在app中所有能看见的都是直接或间接继承与UIView的.我们把UIView叫做视图. UIView的作用 负责内部区域的内容渲染. 负责内部区域的触摸事件. 管理本身的所有子视图. 处理基本的动画. UIView创建与使用 创建UIView //通过frame创建View UIView *view = [[UIView alloc] initWithFrame:CGRectMake(100,