一、UIButton和UIImageView的区别

  1、 UIImageView 默认只能显示一张图片(默认会填充整个ImageView) 设置方法:image/setImage:
    UIButton 默认能显示两种图片,前景和背景(背景会填充整个按钮,前景按尺寸显示) 还可以显示文字 setTitle: forState:
    设置方法:setBackgroundImage: forState:/setImage: forState:
  2、 UIImageView 默认不能响应点击事件
    UIButton 可以响应 addTarget: action: forControlEvents:
  3、 UIImageView只显示图片不做事件处理
    UIButton既显示图片又响应事件
  

  UIControl 类包含关于事件相关的方法 如addTarget

 //
// SLQViewController.m
// UIButton和UIImageView的区别 //
// Created by Christian on 15/4/28.
// Copyright (c) 2015年 itcast. All rights reserved.
// #import "SLQViewController.h" @interface SLQViewController () @end @implementation SLQViewController - (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
// UIImageView
UIImageView *imageView = [[UIImageView alloc] init];
// 设置图片2中方法
//imageView.image = [UIImage imageNamed:@"014.png"];
[imageView setImage:[UIImage imageNamed:@"014.png" ]];
// 设置位置
imageView.frame = CGRectMake(, , , );
// 添加到视图
[self.view addSubview:imageView]; // UIButton
UIButton *btn = [[UIButton alloc] init];
// 设置背景图片
[btn setBackgroundImage:[UIImage imageNamed:@"bg.png"] forState:UIControlStateNormal];
// 设置前景图片
[btn setImage:[UIImage imageNamed:@"016.png"] forState:UIControlStateNormal];
// 设置位置
btn.frame = CGRectMake(, , , );
// 设置显示文字
[btn setTitle:@"按钮" forState:UIControlStateNormal];
// 给按钮添加监听事件
[btn addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];
// 添加到视图
[self.view addSubview:btn]; } - (void)btnClick:(UIButton *)btn
{
NSLog(@"%@",btn);
}
@end

二、UIView常用方法

  1、addSubview:(UIView *) child

    添加子控件,最新的子控件显示在最上面

  2、NSArray *subviews

    通过subviews获取所有子控件,顺序按照assSubView添加排列

  3、removeFromSuperview

    将控件本身从父控件中移除,控件也会从subviews数组中移除

  4、(UIView *)viewWithTag:(int)myTag  

    返回tag值位myTag的子控件,如果有tag值重复,则取最前面的控件,也包含控件本身。

  5、(UIView  *)superView

    返回父控件

三、随机生成数

1、arc4random() // 随机生成正整数和0

2、arc4random_unform(100) // 随机生成0~99的整数

四、类扩展

类扩展 (class extension 匿名分类)

@interface 类名 ()

{

  // 成员变量

}

  // 方法声明

@end

作用:

  1、写在.m文件中

  2、一般用来扩展私有成员变量、@property属性、方法等

IOS开发学习笔记024-UIButton和UIImageView的区别的更多相关文章

  1. IOS开发学习笔记(2)-----UIButton 详解

    1. [代码][C/C++]代码     //这里创建一个圆角矩形的按钮    UIButton *button1 = [UIButton buttonWithType:UIButtonTypeRou ...

  2. iOS开发学习笔记:基础篇

    iOS开发需要一台Mac电脑.Xcode以及iOS SDK.因为苹果设备都具有自己封闭的环境,所以iOS程序的开发必须在Mac设备上完成(当然,黑苹果应该也是可以的,但就需要花很多的精力去折腾基础环境 ...

  3. ios开发学习笔记(1)

    objective-c基础总结 第一二章 1.application:didiFinishLauchingWithOptions:程序启动后立即执行 2.启动界面代码格式:self.window = ...

  4. ios开发学习笔记(这里一定有你想要的东西,全部免费)

    1,Search Bar 怎样去掉背景的颜色(storyboard里只能设置background颜色,可是发现clear Color无法使用). 其实在代码里还是可以设置的,那就是删除背景view [ ...

  5. iOS开发学习笔记

    1 常用的第三方工具 1.1 iPhone Simulator 测试程序需要模拟器iPhone Simulator 1.2 设计界面需要Interface Builder,Interface Buil ...

  6. IOS开发学习笔记021-练习2

    只是简单练习一下,主要是学习里面的思想,处理问题的方法. 不过还有一个问题没想到解决方法. 那就是动态生成的按钮如何绑定按钮事件,请哪位大神指点一下啊.(知道怎么办了,原来是方法addTarget) ...

  7. IOS开发学习笔记043-QQ聊天界面实现

    QQ聊天界面实现 效果如下: 实现过程: 1.首先实现基本界面 头像使用 UIImageView : 文字消息使用 UIButton 标签使用 UILable :水平居中 所有元素在一个cell中,在 ...

  8. ios开发学习笔记040-autolayout 第三方框架Masonry

    不管是是界面创建约束还是代码创建约束,苹果官方提供的方式都比较繁琐.所以出现了第三方框架. Masonry 在github地址如下: https://github.com/SnapKit/Masonr ...

  9. IOS开发学习笔记037-九宫格代码实现

    九宫格布局,用手机输入法时经常见到.先按3行3列写. 代码的实现主要是计算插入图片的位置. 每一张图片的位置和所在的行列密切相关.分析过程如下: 界面: 代码实现 1.把需要的图片资源添加进来 然后给 ...

随机推荐

  1. 在 Windows下用 Visual Studio 编译 OpenSSL 1.1.0

    到OpenSSL官方网站下载OpenSSL源代码包 1.下载 openssl-1.1.0.tar.gz 2.安装 ActivePerl, 可以到http://www.activestate.com/a ...

  2. IOS enum(枚举)使用

    typedef enum { MJMessageTypeMe=, MJMessageTypeOther }MJMessageType; /** *信息的类型 * */ @property (nonat ...

  3. POJ 3041 Asteroids (对偶性,二分图匹配)

    题目:POJ 3041 Asteroids http://poj.org/problem?id=3041 分析: 把位置下标看出一条边,这显然是一个二分图最小顶点覆盖的问题,Hungary就好. 挑战 ...

  4. 在Spark集群中,集群的节点个数、RDD分区个数、​cpu内核个数三者与并行度的关系

    梳理一下Spark中关于并发度涉及的几个概念File,Block,Split,Task,Partition,RDD以及节点数.Executor数.core数目的关系. 输入可能以多个文件的形式存储在H ...

  5. WPF 修改数据后更新UI

    ObservableCollection<T> 只有项添加或删除才会更新UI 要想属性发生变动后立刻更新到UI,必须继承 INotifyPropertyChanged 接口,示例如下 pu ...

  6. Luogu [P1334] 瑞瑞的木板(手写堆)

    其实这个题完全不需要用手写堆,只需要一遍遍sort就行了…… 但是! 为了练习手写堆,还是用手写堆做了. 在做本题之前,如果你没有什么思路的话,建议先做Luogu的合并果子. 好,假设你已经做过了合并 ...

  7. 在maven项目中 配置代理对象远程调用crm

    1 在maven项目中配置代理对象远程调用crm 1.1 在项目的pom.xml中引入CXF的依赖 <dependency> <groupId>org.apache.cxf&l ...

  8. 将指定的form表单所有输入项转为json数据

    今天学习时,看到的将form表单中的输入数据转成json 的jquery代码,直接贴出来: $.fn.serializeJson=function(){ var serializeObj={}; va ...

  9. C# sizeof运算符

    一.C# sizeof运算符 sizeof运算符用于获取值类型的字节数. 二.示例 using System;using System.Collections.Generic;using System ...

  10. 问题010:在Java中,什么是常量,什么是变量?

    Java中常量如何分类? 1.整数常量,所有的整数. 整数又分为 int (integer) 占用4个字节 一个字节占几个二进制位?8个二进制位,一个整型变量占32位二进制位 (内存中开辟出来的存储空 ...