程序日志--ios“文字长度--button与label的交互”程序

我的学习日志003:“文字长度--button与label的交互”程序

交代一下我做程序的工具:mac os x虚拟机10.9.3         Xcode6         百度^-^         参考书iPhone30天精通(本书已经过时,但是还有一定的参考价值,可以引导正确的学习方向)。

没什么新的知识点,直接放步骤和代码。

XCode新建SingleView程序,viewControllor.h代码如下:

#import <UIKit/UIKit.h>

#import<Foundation/Foundation.h>

@interface viewController:UIViewController{

IBOutlet UITextField *textField;

IBOutlet UILabel *label;

}

@property(nonatomic,retain) UITextField *textField;

@property(nonatomic,retain) UILabel *label;

-(IBAction)Click;

@end

viewControllor.m文件

#import "viewController.h"

@implementation viewController

@systhesize textField,label;

-(void)viewDidLoad{

[super viewDidLoad];

label.text = @"请输入文字";

}

-(IBAction)Click{

//这个方法是每一次点击button的时候调用的

int count = textField.text.length;

if(count>20){

label.text = @"输入的含空格和标点符号在内的文字超出20个";

textField.text = NULL;

}

else{

NSString *result = [NSString stringWithFormat:@"输入的文字个数为%d",count];

label.text = result;

textField.text = NULL;

}

}

-(void)didReceiveMemoryWarning{

[super didReceivedMemoryWarning];

}

storyboared处理:

首先要创建textField,button,label控件,因为前面的代码已经创建了这几个控件的对象了,然后选分别中每一个控件,按住ctrl键,鼠标左键拖向.h文件里面的相应的对象。

运行就OK了。这一步可能有不懂得,直接上图,看图自己操作就应该可以了,不会这种方法的注意图中的细节。

说一下我自己遇到的问题与不理解的地方:

遇到的问题:

1.运行的时候遇到警告:The simulator can‘t be launched.....大概就是说我模拟器别的程序还用着呢,我怎么可以再运行别的程序呢。这种时候只要强制关一下XCode就可以了,

强制关闭快捷键是commend+Q(虚拟机没有commend按键,win键代替即可)。

2.我在写viewController.h文件的时候忘了加上"#import<Foundation/Foundation.h>"这句话,导致我的程序出现“Thread1:signalSIGABRT...”这样的警告,所以以后写程序的时候要细心。

3.在打开程序的时候XCode还警告我“No signing identity dound”这是一个签名警告,意思就是没有签名标识。如果是用模拟器调程序的话没有关系,可以不用管它。

待解决的知识点:

@prperty与@systhesize

我在我的第二篇日志里面总结了一下,但是现在看来,还是太菜。http://blog.csdn.net/v7595v/article/details/46833209

现在只总结@prperty与@systhesize,贪多嚼不烂,如下:

Objective-C语言关键词,与@synthesize配对使用。xcode4.5以及以后的版本,@synthesize可以省略

下面以 Person 类为例:

在. h 文件中:

@interface Person : NSObject

{

NSString * _name;

NSString * _sex;

NSInteger _age;

}

@property NSString * name;

@property NSString * sex;

@property NSInteger age;

表示声明了三个属性: name,sex,age, 默认生成3个对应的 setter 和 getter 方法

在. m 文件中:

@implementation Person

@synthesize name = _name;

@synthesize sex = _sex;

@synthesize age = _age;

@end

表示实现3个 setter 和 getter 方法,其中 name = _name 表示说在 getter 和 setter 方法中操作的实例变量是_name,如果省略了_name,_age,_sex, 那么会在. h 文件中生成同名的实例变量 name,sex,age(注意:这里并没有下划线),此时生成的 setter 和 getter 方法所操作的实例变量是 name,sex,age, 所以_name,_sex,_age 并没有被操作.

在 ios5.0后,@synthesize也可以省略不写,此时在. h 文件中只写@ property 即可,编译器会自动生成相应的实例变量,实例变量的名字是属性名称前加下划线.

这是我在百度百科copy过来的资料,按照它的说法的话,我就可以去掉viewController.h文件里面的@interface{}里面定义的实例变量,同时去掉@systhesize,只写@property就可以了。But,去掉了@systhesize虽然没关系,但是去掉@interface{}里面的实例变量之后,用ctrl无法将storyboard和.h文件里面的@property相关联。所以只能加上@interface{}里面定义的实例变量。还有一点,我加入的实例变量是与@property修饰的变量名字是相同的,没有用"_"去区分,然而也没有错误,那我便暂时先按这种方便的方式去写代码。

IB 就是Interface Builed:

书上和网上总是说IB就是InterfaceBuiled,关于IBAction和IBOutlet我已经在我程序日志的第一篇里面解决了这一问题,http://blog.csdn.net/v7595v/article/details/46831265

什么是InterfaceBuiled?

看了百度百科http://baike.baidu.com/link?url=WUPoCb4zLKQuhj8NB46slu4phwAxGc0v56FyahESMEDkViA833E3zZQqUyqI-NULGwZHd-3sWuTziY3DCJqbea

IB再深究已无意义,了解一下作罢。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-05 11:26:33

程序日志--ios“文字长度--button与label的交互”程序的相关文章

程序日志--ios“Hello World”程序

我的学习日志001:第一个程序"hello world" 交代一下我做程序的工具:mac os x虚拟机10.9.3         Xcode6         百度^-^         参考书iPhone30天精通(本书已经过时,但是还有一定的参考价值,可以引导正确的学习方向). 我做日志的目的是将不会的东西整理出来,学会并作为总结,很适合初学者当做课外读物看一看我之前不会的东西你是否已经掌握,作为一个以人为镜知得失的目的吧^-^. 具体怎么做的百度一下"ios Hel

程序日志--ios“考反应扑克游戏”程序

交代一下我做程序的工具:mac os x虚拟机10.9.3         Xcode6         百度^-^         参考书iPhone30天精通 总结与经验,还有遇到的问题,都在程序里面写出来了,看着长,其实从头往下看10分钟就全都搞懂了,我的注释很"白话". //  ViewController.h //  12.1 // //  Created by 李迪 on 15-7-28. //  Copyright (c) 2015年 李迪. All rights res

程序日志--ios“页面控制”程序

</pre>交代一下我做程序的工具:mac os x虚拟机10.9.3         Xcode6         百度^-^         参考书iPhone30天精通:本程序是第13天+第14天的集合<p></p><p></p><p>这是参考书上的第13天的程序:书上的程序是为程序中的每一个视图控件页面指定一个小圆点,并使用白色的原点来显示当前页面,点击Page Control控件上面的小圆点来引导程序翻页....但是,这种翻

iOS 根据文字字数动态确定Label宽高

iOS7中用以下方法 - (CGSize)sizeWithAttributes:(NSDictionary *)attrs; 替代过时的iOS6中的- (CGSize)sizeWithFont:(UIFont *)font 方法 // iOS7_API_根据文字 字数动态确定Label宽高 // 设置Label的字体 HelveticaNeue Courier UIFont *fnt = [UIFont fontWithName:@"HelveticaNeue" size:24.0f]

iOS根据文字字数动态确定Label宽高

我们有时候在写项目的时候,会碰到,意见反馈,还有其他地方,讲座活动细则等需要大篇展示的文本, 因为每次服务器返回的内容大小不一,所以需要动态的调整label的宽高: 在ios 6 的时候可以: -(void)creatLabel { //根据文字 字数动态确定label宽高 _nameLabel = [[UILabel alloc]init]; _nameLabel.frame = CGRectMake(100, 100, 100, 40); _nameLabel.backgroundColor

黑马程序员---ios学习日志10

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------- 程序的结构及分类 程序的结构有三种分别为: 1.顺序结构:一种简单的程序结构,他有若干个依次执行的处理步骤组成. 程序流程  语句1-- 语句2-- 语句3-- .... 2.分支结构:程序遇到一些条件判断,流程根据条件是否成立由不同的流

黑马程序员---ios学习日志 10

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------- 程序的结构及分类 程序的结构有三种分别为: 1.顺序结构:一种简单的程序结构,他有若干个依次执行的处理步骤组成. 程序流程  语句1-- 语句2-- 语句3-- .... 2.分支结构:程序遇到一些条件判断,流程根据条件是否成立由不同的流

java====color、font、button、label、textfield、textarea使用

1. Color类 µ 公共静态属性:共13个静态属性,分别代表13种不同的颜色常量. µ 构造函数 ü public Color(int r,int g,int b):以整数形式给出红.绿.蓝三个分量的值,每个分量的范围:0~255 ü public Color(float r,float g,float b):r.g.b均为单精度浮点数.取值范围为0.0f~1.0f ü public Color(int rgb):rgb的16~23位:红色分量:0~7位:蓝色分量,8~15位:绿色分量. 2

iOS_根据文字字数动态确定Label宽高

iOS7中用以下方法 - (CGSize)sizeWithAttributes:(NSDictionary *)attrs; 替代过时的iOS6中的- (CGSize)sizeWithFont:(UIFont *)font 方法 // iOS7_API_根据文字 字数动态确定Label宽高 // 设置Label的字体 HelveticaNeue Courier UIFont *fnt = [UIFont fontWithName:@"HelveticaNeue" size:24.0f]