最近找到了一个可以接触ios开发的职位,可以系统的学习和练习了。先从最基本的开始:

一、获取控件的两种方式

1)第一种,也是经常使用的一种,通过IBOutlet方式。直接按住control键,将控件和ViewController建立联系,然后就可以通过Controller的属性来获取控件

2)第二种,通过设置控件的tag属性。

先设置控件的tag属性为一个integer类型的值,然后在代码中获取

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

二、事件处理的三种方式

1)第一种,最常使用的是通过IBAction的方式

2)第二种,通过代码设置事件处理方法

在viewDidLoad事件中调用addTarget:action:forControlEvents来添加处理事件,

addTarget:表明以改对象的某个方法来处理事件,例如当前controller

action:代表处理事件的方法

forControlEvents:要处理的事件类型,一个UIControlEvents的枚举值

例子:

- (void) viewDidLoad
{
[super viewDidLoad];
NSLog(@"页面加载完成");
AppDelegate *ad = [UIApplication sharedApplication].delegate;
NSLog(@"打印代理类的lycname属性%@", ad.LycName); //给控件添加事件
[self.btnMeet addTarget:self action:@selector(btnMeet_click:) forControlEvents:UIControlEventTouchUpInside];
} -(void) btnMeet_click:(UIButton *) sender
{
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"提示" message:@"我是遇见按钮" delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil, nil];
[alertView show];

3)通过委托对象来处理事件

上两种事件处理针对的都是主动控件,即继承自UIControl:UIView的控件。

而如果是UITextView这种控件,是继承自UIScrollView:UIView,所以它本身并不具备一些常见事件,在这种情况下,就需要委托对象来处理特殊事件。

例如刚刚提到的UITextView控件,它的默认事件有:

-textViewShouldBeginEditing:将要开始编辑时触发

-textViewDidBeginEditing:开始编辑后触发

-textViewShouldEndEditing:将要结束编辑时触发

-textViewDidEndEditing:结束编辑后触发

-textViewDidChange:文本内容发生改变后触发

要实现上面的事件处理,必须要实现UITextViewDelegate协议

 @interface UITextFieldViewController : UIViewController<UITextViewDelegate>
//属性
@property (strong,nonatomic) UIBarButtonItem *doneRightBI;//右侧导航条按钮-完成
@property (strong,nonatomic) UIBarButtonItem *commitRightBI;//右侧导航条按钮-提交 @end
@implementation UITextFieldViewController

- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
self.txtContent.delegate = self; if (self.navigationItem != nil) {
[self.navigationItem setTitle:@"文本框演示"]; //初始化右侧导航按钮-提交按钮
UIBarButtonItem *rightBtn = [[UIBarButtonItem alloc] initWithTitle:@"提交" style:UIBarButtonItemStyleDone target:self action:@selector(registerUserHandler)]; self.commitRightBI = rightBtn;
//设置当前右侧按钮为提交按钮
[self.navigationItem setRightBarButtonItem:self.commitRightBI]; //初始化右侧导航按钮-完成按钮
UIBarButtonItem *rightDoneBtn = [[UIBarButtonItem alloc] initWithTitle:@"完成" style:UIBarButtonItemStyleDone target:self action:@selector(resignFirstReponderHandler)];
self.doneRightBI = rightDoneBtn; } }
//上面的按钮处理事件(registerUserHandler、resignFirstReponderHandler)就不列出来了
@end
 //文本框开始编辑时触发
-(void) textViewDidBeginEditing:(UITextView *)textView
{
NSLog(@"开始编辑本文域");
if (self.navigationItem != nil)
{
[self.navigationItem setRightBarButtonItem:self.doneRightBI animated:NO];
}
} //文本框结束编辑时触发
-(void) textViewDidEndEditing:(UITextView *)textView
{
NSLog(@"结束编辑本文域");
[self resignFirstReponderHandler];
if (self.navigationItem != nil)
{
[self.navigationItem setRightBarButtonItem:self.commitRightBI animated:NO];
}
}

这样,通过上面的代码,当UITextView在不同状态时,右侧的导航按钮也会相应的改变

三、通过代码创建控件

1、创建UI控件

2、调用addSubView将创建的控件添加到其他view中

3、多次调用控件的setter方法,设置外观、行为等

例子:

    //用代码创建一个控件
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
//设置button的大小
button.frame=CGRectMake(, , , );
[button setTitle:@"我是代码创建的" forState:UIControlStateNormal];
[self.view addSubview:button];
 
 

ios基础之入门(一)的更多相关文章

  1. [置顶] IOS 基础入门教程

    IOS 基础入门教程 教程列表: IOS 简介 IOS环境搭建 Objective C 基础知识 创建第一款iPhone应用程序 IOS操作(action)和输出口(Outlet) iOS - 委托( ...

  2. iOS 基础入门--Bull' Eye 小游戏 

      说明   Bull's Eye小游戏是http://www.raywenderlich.com/store/ios-apprentice里非常酷的入门demo 跟着该教程一步步做下来便有了 ...

  3. 【转】iOS 开发怎么入门?

    原文网址:http://www.zhihu.com/question/20264108 iOS 开发怎么入门? 请问有设计模式.内存管理方面的资料吗?最好有除了官方文档之外的其它内容,10 条评论 分 ...

  4. IM开发者的零基础通信技术入门(二):通信交换技术的百年发展史(下)

    1.系列文章引言 1.1 适合谁来阅读? 本系列文章尽量使用最浅显易懂的文字.图片来组织内容,力求通信技术零基础的人群也能看懂.但个人建议,至少稍微了解过网络通信方面的知识后再看,会更有收获.如果您大 ...

  5. IM开发者的零基础通信技术入门(一):通信交换技术的百年发展史(上)

    [来源申明]本文原文来自:微信公众号“鲜枣课堂”,官方网站:xzclass.com,原题为:<通信交换的百年沧桑(上)>,本文引用时已征得原作者同意.为了更好的内容呈现,即时通讯网在收录时 ...

  6. iOS 基础:Frames、Bounds 和 CGGeometry

    https://segmentfault.com/a/1190000004695617 原文:<iOS Fundamentals: Frames, Bounds, and CGGeometry& ...

  7. 李洪强iOS开发之-入门指南

    李洪强iOS开发之-入门指南 1零基础小白如何进行iOS系统学习 首先,学习目标要明确:其次,有了目标,要培养兴趣,经常给自己一些正面的反馈,比如对自己的进步进行鼓励,在前期小步快走:再次,学技术最重 ...

  8. IM开发者的零基础通信技术入门(三):国人通信方式的百年变迁

    [来源申明]本文原文来自:微信公众号“鲜枣课堂”,官方网站:xzclass.com,原题为:<中国通信的百年沉浮>,本文引用时已征得原作者同意.为了更好的内容呈现,即时通讯网在收录时内容有 ...

  9. IOS基础学习-2: UIButton

    IOS基础学习-2: UIButton   UIButton是一个标准的UIControl控件,UIKit提供了一组控件:UISwitch开关.UIButton按钮.UISegmentedContro ...

随机推荐

  1. 【原】MyEclipse8.5集成Tomcat7时启动错误:Exception in thread “main” java.lang.NoClassDefFoundError

    解决方法: MyEclipse->Window->Preferences->MyEclipse->Servers->Tomcat->Tomcat 6.x->L ...

  2. Lotus开发之Lotus Notes中域的验证

    一:介绍       Lotus中的域主要有以下的类型:文本,日期/时间,对话框列表,复选框,单选按钮,RTF等等.Lotus中域的验证方式有很多种公式,lotusscript,javascript等 ...

  3. [ay原创作品]用wpf写了个模仿36Kr网站登录背景的效果

    这里我借鉴了,上周比较火的一个前端文章,人家用js去写的,地址 自己用wpf也写了一个,但是它的  粒子比较,然后连线算法真的很差,他创建了一个加入鼠标点的集合,2个集合进行比较,并且粒子会向鼠标靠近 ...

  4. Codeforces Round #384 (Div. 2)B. Chloe and the sequence 数学

    B. Chloe and the sequence 题目链接 http://codeforces.com/contest/743/problem/B 题面 Chloe, the same as Vla ...

  5. Navi.Soft30.产品.DataWindowNet.操作手册

    1概述 1.1功能简介 Sybase公司的PowerBuilder开发工具,在以前VS工具没有成事以前,是相当风光的.微软都要与其合作,学习它Db方面的技术,才成就了SQLServer数据库.PB开发 ...

  6. C# WinForm 技巧十: 开发工具

    一.摘要   为了开发效率就应该为这个框架开发一个配套工具.来生成固定格式的代码.工具界面如下:   二.数据库整理篇   添加表主键 修改表说明 修改表字段说明 生成数据库文档 导出数据库里相同的字 ...

  7. 【News】SpagoBI中国官方微信对外发布

    爱数据,爱分析,爱达比 致力于国际优秀开源BI应用在中国的普及推广,用数据开启中小企业智慧之门: 扫描上图二维码,关注SpagoBI中国官方微信,2015年8月18日将在腾讯课堂.百度传课.网易云课堂 ...

  8. appToken 来源

    .appToken的来源ActivityRecord, 用于在ActivityManagerService中记录Activity相关的信息(ActivityThread端 用的是ActivityCli ...

  9. T-SQL 小数点转换百分数

    -- ============================================= -- Author: <Author,,CC> -- Create date: <C ...

  10. TSPL学习笔记(4):数组相关练习

    最近研究函数式编程,都是haskell和scheme交互着看的,所以笔记中两种语言的内容都有,练习一般也都用两种语言分别实现. 本篇练习一些数组有关的问题,之所以与数组相关是因为在命令式编程中以下问题 ...