【Objective-C学习记录】第三十六天

时间:2022-11-12 17:08:11

今天学习了一下UILabel UITextField UIButton UIImage这几个基础控件,UILabel没什么好说的,因为不涉及到交换的工作,记住几个属性就行了。

UITextField这个东西,遇到了不少问题。我用的是XCode7.2,建立空应用(Empty Application)后,UITextField里无论怎么点击都没有反应,用XCode6.3打开却是正常的,后来也不知道为什么时而正常时而报错,找了一下午问题还是没找到,只能先用6.3做着了。

说到UITextField,主要是键盘类型的设置,还有如何撤回键盘这个操作,学到了两种方式:

1.实现UITextFieldDelegate协议里的textFieldShouldReturn:方法:

1 - (BOOL)textFieldShouldReturn:(UITextField *)textField
2 {
3 [textField resignFirstResponder];
4 return YES;
5 }

textFieldShouldReturn:这个方法是指按下键盘上的return键时执行的方法,当按下后正在输入的textField会放弃第一响应者,即撤回键盘。

2.实现touchesBegan: withEvent:方法

这个方法在网上查到的,不多说,直接上代码:

1 - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
2 {
3 [self.window endEditing:YES];
4 }

这个方法大概做的事情是当检测到在屏幕空白区上按下时,会结束编辑状态。感觉这个方法比上面那个常用。

UIButton主要注意systemButton和customButton的一些小区别,注册事件使用addTarget: action: forControlEvents:方法,第一个参数一般是self,第二个参数为SEL即方法名,第三个参数是何种方式触发该button,一般使用UIControlEventTouchUpInside这个值。

UIImage可以用来制作帧动画,并且需要注意的是如果图片格式为png,可以不写扩展名,其他格式必须写,主要步骤如下:

1.实例化UIImageView对象

UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];

2.实例化一个可变数组用来存放帧动画的图片

NSMutableArray *imageViewArray = [[NSMutableArray alloc] initWithCapacity: 0];

3.遍历图片,存在可变数组里(假设有10张,名字为“sprite0~9”)

for (int i = 0; i < 10; i ++)

{

    UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"sprite%d", i]];

    [imageViewArray addObject: image];

}

4.将帧动画数组指定给imageView

imageView.animationImages = imageViewArray;

另外还可以设置一些其他属性,包括动画时长:animationDuration

重复次数:animationRepeatCount(为0的时候表示一直重复)

================写在后面=============

今天忙了一天,主要是XCode的那个bug让我头疼不已,另外打算用WordPress把以前丑陋不堪的主页重新做一遍,做好了博客肯定会转移到自己的主页上,今天写的略为仓促,主要是写完要继续搭WordPress,不说了,Go go。