UI-Day2____Button

2015.3.17

//button除了alloc init方法创建以外,系统封装了类方法,在以前非常实用,不过在ios7中这种方法的实用性有些下降了。(因为取消了圆角风格)

+ (id)buttonWithType:(UIButtonType)buttonType;

typedef NS_ENUM(NSInteger, UIButtonType) {

//默认,如果只设置了普通背景图,没有设置高亮背景图,点击时会将普通背景图变灰

UIButtonTypeCustom = 0,

//点击时会将背景图半透明,如果button只设置了普通状态下的文字,那么文字会有阴影效果

UIButtonTypeSystem NS_ENUM_AVAILABLE_IOS(7_0),

UIButtonTypeRoundedRect = UIButtonTypeSystem,

UIButtonTypeDetailDisclosure,

UIButtonTypeInfoLight,

UIButtonTypeInfoDark,

//这三种在ios7以后都差不多,是一个信息标记

UIButtonTypeContactAdd,

//加号标记

//2种标记都预设了图片和size大小22*22,不需要在自己设置大小和图片

};

//设置不同状态下的字体,字体颜色,背景图片

- (void)setTitle:(NSString *)title forState:(UIControlState)state;

- (void)setTitleColor:(UIColor *)color forState:(UIControlState)state;

- (void)setBackgroundImage:(UIImage *)image forState:(UIControlState)state;

//状态最常用下面3个

UIControlStateNormal       = 0, //默认

UIControlStateHighlighted  = 1 << 0, //被点击时,(当按住按钮不放时就是这个状态)

UIControlStateSelected     = 1 << 2, //选中(这个状态是得手动设置为选中或非选中)

//注:工作中高亮和选中这2个状态一般不会同时出现,如果同时设置可能引起冲突

//给按钮添加一个点击事件

//第一个参数名是目标对象(也就是给谁发消息),第二个参数是传一个方法名,(注意要这目标对象里有这个方法,不然就挂了)

- (void)addTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents;

//最后一个参数一般用UIControlEventTouchUpInside,点击松开时触发

//和上一个对应,删除一个点击事件

- (void)removeTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents;

tag值判断

UIControlStateUIControlEvents

//创建定时器,每隔几秒就运行某个函数一次

NSTimer *_timer = [NSTimer scheduledTimerWithTimeInterval:0.01 target:self selector:@selector(run) userInfo:nil repeats:YES];

//取消定时器

[_timer invalidate];

------------------------------------------------------------------------------------------------------------------------------------------

#import "AppDelegate.h"

#import "RootViewController.h"

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

{

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

// Override point for customization after application launch.

NSLog(@"1111");

//创建一个视图控制器(页面)

RootViewController *rvc = [[RootViewController alloc] init];

NSLog(@"2222");

//将页面和window关联(设为程序的首页)

self.window.rootViewController = rvc;

NSLog(@"333");

self.window.backgroundColor = [UIColor whiteColor];

[self.window makeKeyAndVisible];

NSLog(@"4444");

return YES;

}

#import "RootViewController.h"

@interface RootViewController ()

@end

@implementation RootViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil

{

self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];

if (self) {

// Custom initialization

NSLog(@"初始化函数,这个方法不需要直接调用");

}

return self;

}

- (void)viewDidLoad

{

[super viewDidLoad];

// Do any additional setup after loading the view.

//专门用来写UI的,所有的UI的添加都写在这个方法里

NSLog(@"%s",__func__);

//每一个视图控制器(页面)都自带一个view,全屏的,默认的颜色的透明

self.view.backgroundColor = [UIColor yellowColor];

//使用类方法创建一个btn,可以通过这种方式设置btn的类型

UIButton *btn = [UIButton buttonWithType:UIButtonTypeSystem];

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

btn.backgroundColor = [UIColor redColor];

//设置普通状态下的文字、文字颜色、背景图片

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

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

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

//高亮状态下的文字、文字颜色、背景图片

[btn setTitle:@"点住了" forState:UIControlStateHighlighted];

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

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

//给btn添加一个点击事件

//让btn开始监听TouchUpInside这个事件,一旦接收到这个事件,就会让self调用-btnClick 这个方法。

//OC里的事件-消息机制

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

[self.view addSubview:btn];

}

//点击事件对应的消息(一般情况下直接把它叫成点击事件)

- (void)btnClick

{

NSLog(@"一一一一一一一");

}

一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一分割一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一

#import "AppDelegate.h"

#import "RootViewController.h"

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

{

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

// Override point for customization after application launch.

RootViewController *rvc = [[RootViewController alloc] init];

self.window.rootViewController = rvc;

self.window.backgroundColor = [UIColor whiteColor];

[self.window makeKeyAndVisible];

return YES;

}

- (void)viewDidLoad

{

[super viewDidLoad];

// Do any additional setup after loading the view.

self.view.backgroundColor = [UIColor yellowColor];

_label = [[UILabel alloc] initWithFrame:CGRectMake(20, 60, 280, 60)];

_label.backgroundColor = [UIColor grayColor];

_label.textAlignment = NSTextAlignmentCenter;

_label.text = @"哥不是随便的人";

_label.font = [UIFont systemFontOfSize:30];

[self.view addSubview:_label];

UIButton *btn1 = [UIButton buttonWithType:UIButtonTypeSystem];

btn1.frame = CGRectMake(30, 160, 260, 40);

btn1.backgroundColor = [UIColor grayColor];

[btn1 setTitle:@"点我" forState:UIControlStateNormal];

//给一个view添加标记,默认是0,所以设置的时候要避免使用0

btn1.tag = 1;

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

[self.view addSubview:btn1];

UIButton *aBtn = [[UIButton alloc] initWithFrame:CGRectMake(30, 230, 260, 40)];

//使用alloc init创建的btn,类型是custom。

aBtn.backgroundColor = [UIColor grayColor];

aBtn.tag = 2;

[aBtn setTitle:@"点我" forState:UIControlStateNormal];

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

[self.view addSubview:aBtn];

}

- (void)btnClick:(UIButton *)sender

{

NSLog(@"tag = %d",sender.tag);

if (sender.tag == 1) {

_label.text = @"点了第1个";

} else {

_label.text = @"2";

}

sender.hidden = YES;

//延迟调用,self在0.5秒以后执行runLater:,并且将sender作为参数

[self performSelector:@selector(runLater:) withObject:sender afterDelay:0.5];

}

- (void)runLater:(UIButton *)btn

{

btn.hidden = NO;

}

一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一分割一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一

#import "AppDelegate.h"

#import "HomeViewController.h"

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

{

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

// Override point for customization after application launch.

HomeViewController *hvc = [[HomeViewController alloc] init];

self.window.rootViewController = hvc;

self.window.backgroundColor = [UIColor whiteColor];

[self.window makeKeyAndVisible];

return YES;

}

- (void)viewDidLoad

{

[super viewDidLoad];

// Do any additional setup after loading the view.

self.view.backgroundColor = [UIColor yellowColor];

UILabel *resultLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 30, 300, 300)];

resultLabel.backgroundColor = [UIColor grayColor];

resultLabel.font = [UIFont systemFontOfSize:100];

resultLabel.textAlignment = NSTextAlignmentCenter;

resultLabel.text = @"随机";

[self.view addSubview:resultLabel];

resultLabel.tag = 1;

//设置圆角

resultLabel.layer.masksToBounds = YES;

resultLabel.layer.cornerRadius = 150;

//设置边框

resultLabel.layer.borderColor = [[UIColor blackColor] CGColor];

resultLabel.layer.borderWidth = 5;

//获取屏幕高度

CGFloat height_for_screen = [UIScreen mainScreen].bounds.size.height;

UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];

btn.frame = CGRectMake(130, height_for_screen-40-30, 60, 40);

btn.backgroundColor = [UIColor grayColor];

//设置btn字体大小

btn.titleLabel.font = [UIFont systemFontOfSize:10];

[btn setTitle:@"start" forState:UIControlStateNormal];

[btn setTitle:@"stop" forState:UIControlStateSelected];

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

[self.view addSubview:btn];

}

- (void)btnClick:(UIButton *)sender

{

sender.selected = !sender.selected;

if (sender.selected) {

//启动一个时间器,让self每隔0.05秒调用一次timeRun

_timer = [NSTimer scheduledTimerWithTimeInterval:0.05 target:self selector:@selector(timeRun) userInfo:nil repeats:YES];

} else {

//停止时间器

[_timer invalidate];

}

}

- (void)timeRun

{

//1,声明一个lable类型指针,指向self.view中tag值为1的view

//2,要告诉编译器这个view是UILabel类型的(强转)

UILabel *label = (UILabel *)[self.view viewWithTag:1];

int row = arc4random_uniform(4)+1;

int num = arc4random_uniform(6)+1;

label.text = [NSString stringWithFormat:@"%d%d",row,num];

}

一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一分割一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一

可动国际象棋

#import "AppDelegate.h"

#import "HomeViewController.h"

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

{

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

// Override point for customization after application launch.

HomeViewController *hvc = [[HomeViewController alloc] init];

self.window.rootViewController = hvc;

self.window.backgroundColor = [UIColor whiteColor];

[self.window makeKeyAndVisible];

return YES;

}

- (void)viewDidLoad

{

[super viewDidLoad];

// Do any additional setup after loading the view.

self.view.backgroundColor = [UIColor yellowColor];

[self createChess];

[self createBtn];

}

- (void)createChess

{

for (int i = 0; i<8; i++) {

for (int j = 0; j<8; j++) {

UIView *view = [[UIView alloc] initWithFrame:CGRectMake(j*40, i*40+60, 40, 40)];

if ((i+j)%2) {

view.backgroundColor = [UIColor whiteColor];

} else {

view.backgroundColor = [UIColor blackColor];

}

[self.view addSubview:view];

}

}

}

- (void)createBtn

{

NSArray *titleArr = [NSArray arrayWithObjects:@"车",@"马",@"象",@"王",@"后",@"象",@"马",@"车", nil];

for (int i = 0; i<8; i++) {

for (int j = 0; j<8; j++) {

UIButton *btn = [UIButton buttonWithType:UIButtonTypeSystem];

btn.titleLabel.font = [UIFont boldSystemFontOfSize:30];

if (i<2) {

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

if (!i) {

[btn setTitle:[titleArr objectAtIndex:j] forState:UIControlStateNormal];

} else {

[btn setTitle:@"兵" forState:UIControlStateNormal];

}

}

if (i>5) {

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

if (i == 7) {

[btn setTitle:[titleArr objectAtIndex:7-j] forState:UIControlStateNormal];

} else {

[btn setTitle:@"兵" forState:UIControlStateNormal];

}

}

btn.frame = CGRectMake(j*40, i*40+60, 40, 40);

btn.tag = j+i*8+1;

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

[self.view addSubview:btn];

}

}

}

- (void)btnClick:(UIButton *)sender

{

NSLog(@"tag = %d",sender.tag);

if (sender.tag<17 || sender.tag>48) {

_tempBtn = sender;

} else {

if (_tempBtn) {

//交换frame

CGRect rect = _tempBtn.frame;

_tempBtn.frame = sender.frame;

sender.frame = rect;

_tempBtn = nil;

}

}

}

时间: 2024-12-27 04:36:17

UI-Day2____Button的相关文章

基于jquery开发的UI框架整理分析

根据调查得知,现在市场中的UI框架差不多40个左右,不知大家都习惯性的用哪个框架,现在市场中有几款UI框架稍微的成熟一些,也是大家比较喜欢的一种UI框架,那应该是jQuery,有部分UI框架都是根据jQuery研发出来的产品,现在也很常见了. 国产jQuery UI框架 (jUI) DWZ DWZ富客户端框架(jQuery RIA framework), 是中国人自己开发的基于jQuery实现的Ajax RIA开源框架.设计目标是简单实用,快速开发,降低ajax开发成本. jQuery 部件布局

iOS instruments之ui automation的简单使用(高手绕道)

最近使用了几次instruments中的automation工具,现记录下automation的简单使用方法,希望对没接触过自动化测试又有需求的人有所帮助.  UI 自动测试是iOS 中重要的附加功能,它由名为"Automation"的新的工具对象支持.Automation工具的脚本是用JavaScript语言编写,主要用于分析应用的性能和用户行为,模仿/击发被请求的事件,利用它可以完成对被测应用的简单的UI测试及相关功能测试. 一. 简单的录制脚本 打开xcode,这里用我为我家亲爱

RDVECore来自锐动的无UI,高度抽象化API的视频编辑SDK--IOS版

1 编写目的 预期读者: 有视频编辑开发经验或者无经验的,打算或者正在使用"锐动IOS版RDVECore"的相关工程师. iOS软件工程师. 产品经理. QA 2 名词解释 分辨率:用于计算机视频处理的图像,以水平和垂直方向上所能显示的像素数来表示分辨率.常见视频分辨率的有1080P即1920x1080,720P即1080x720,640x480等. 帧率:每秒的帧数(fps)或者说帧率表示图形处理器处理场时每秒钟能够更新的次数. 码率: 数据传输时单位时间传送的数据位数,一般我们用的

UI渲染回顾简单笔记

UI渲染的简单过程: CPU,GPU,显示器协同工作,CPU 中计算显示内容,比如视图的创建.布局计算.图片解码.文本绘制等,然后将计算结果提交给GPU,由 GPU 进行变换.合成.渲染.随后 GPU 会把渲染结果提交到帧缓冲区去,随后等待下一次 VSync(垂直同步信号) 到来时,视频控制器会逐行读取帧缓冲区的数据,经过可能的数模转换传递给显示器显示.由于垂直同步的机制,如果在一个 VSync 时间内,CPU 或者 GPU 没有完成内容提交,则那一帧就会被丢弃,等待下一次机会再显示,而这时显示

关于Vue的各个UI框架(elementUI、mint-ui、VUX)

elementUI 官网:http://element.eleme.io/ 使用步骤: 1.安装完vue-cli后,再安装 element-ui 命令行:npm i element-ui -D 相当于  npm install element-ui --save-dev //   i -> install       D  -> --save-dev       S -> --save   都是缩写 2.在main.js入口文件中引入它的js和css import ElementUI f

Vue.js之UI组件elementUI——MintUI

目的: 为了提高开发效率 功能 原则: 拿过来直接使用 vue-cli  ->  vue-loader bower 前端包管理器 jquery#1.11.1 自动解决依赖npm node包管理器 [email protected] 饿了么团队开源一个基于vue 组件库 elementUI: 如何使用 官网:http://element.eleme.io/使用:1. 安装 element-ui npm i element-ui -D npm install element-ui --save-de

第一百八十九节,jQueryUI,折叠菜单 UI

jQueryUI,折叠菜单 UI 学习要点: 1.使用 accordion 2.修改 accordion 样式 3.accordion()方法的属性 4.accordion()方法的事件 5.accordion 中使用 on 折叠菜单(accordion),和选项卡一样也是一种在同一个页面上切换不同内容的功能 UI.它和选项卡的使用几乎没有什么太大区别,只是显示的效果有所差异罢了. 一.使用 accordion 使用 accordion 比较简单,但需要按照指定的规范即可. HTML 部分 <d

学习ui设计是自学好?还是参加培训好?

ui设计自学好?还是参加培训好? 想学UI设计的人,或是想转行UI设计的人,大多都有一个困惑,要不要报班?去哪里报班?报什么班?学UI设计自学好还是报班培训好?相信这是想要进入UI设计行业领域的人们心中都有的疑问,那么该怎么办?下面小编谈谈ui设计自学好还是参加培训好的看法! 1.自学UI设计,首先是你要了解自己是有基础,还是零基础.有基础的话可以自学,不过要找到足够专业的ui学习平台,不然技术还没学会,反而把时间给耽误了,然后就是自己对学习的时间以及学习的实践操作做规划.只有持之以恒的不断学习

Winform软件,不要在线程里操作UI

对于Winform软件,不要在线程里操作UI,不要相信:StartForm.CheckForIllegalCrossThreadCalls = false; 于是,把所有的代码都改成主线程委托调用的方式 private delegate void SetTextHandle(string id, string value); private void ThreadSetText(string id, string value) { this.Controls.Find(id, true)[0].

android内存优化5—对界面UI的优化(2)

在一个应用程序中,一般都会存在多个Activity,每个Activity对应着一个UI布局文件.一般来说,为了保持不同窗口之间的风格统一,在这些UI布局文件中,几乎肯定会用到很多相同的布局.如果我们在每个xml文件中都把相同的布局都重写一遍,一个是代码冗余,可读性很差:另一个是修改起来比较麻烦,对后期的修改和维护非常不利.所以,一般情况下,我们需要把相同布局的代码单独写成一个模块,然后在用到的时候,可以通过<include /> 标签来重用layout的代码. 常见的,有的应用在最上方会有一个