标签:style class c tar ext color
(1-10目录)
1.取得2个文本输入框的值
2.退出键盘
3.设置按钮的背景图
4.执行动画
5.手动创建按钮以及设置按钮的一些基本属性
6 transform属性
7.imageView序列帧动画
8.九宫格算法
9.通过xib创建局部控件,利用模型封装加载数据
10设置状态栏的样式为白色
{
扯淡环节:
工作这么久了, 发现一些细节有时候总是忽略, 现在就把我刚接触时的知识点给整理出来!,
没事自己看看, 也分享给大家!
分享,创造快乐!哈哈
xq每天都生活在快乐当中, 愿你们也是!
}
1.取得2个文本输入框的值
NSString *text1 = self.num1.text;
NSString *text2 =
self.num2.text;
2.退出键盘
// 第一响应者:叫出键盘的那个控件
// 不当第一响应者(就会把键盘退下)
[self.num1
resignFirstResponder];
[self.view endEditing:YES];//退出键盘
// 不允许直接修改 对象的 结构体属性的成员
// 允许直接对象的结构体属性
3.设置按钮的背景图,
UIImage *image = [UIImage
imageNamed:@"btn_01"];//根据图片名创建一张图片
[btn setBackgroundImage:image
forState:uicontrolstate];//设置按钮在背景图片
4.执行动画
[UIView
beginAnimations:nil context:nil];
[UIView
setAnimationDuration:2.0];//动画执行的时间
中间部分为要执行的动画代码
[UIView
commitAnimations];
5.手动创建按钮以及设置按钮的一些基本属性
UIButton *btn = [[UIButton alloc]
init];//创建按钮
[self.view addSubview:btn];//把创建的按钮添加到父控件当中
btn.frame =
CGRectMake(50, 50, 100, 100);//设置按钮的位置以及大小
UIImage *normal = [UIImage
imageNamed:@"btn_01"];//通过文件名加载图片(凡是PNG图片,都不用加拓展名)
[btn
setBackgroundImage:normal
forState:UIControlStateNormal];//设置普通状态下的背景图片
UIImage *high = [UIImage
imageNamed:@"btn_02"];
[btn setBackgroundImage:high
forState:UIControlStateHighlighted];//加载高亮的图片
[btn setTitle:@"点我啊"
forState:UIControlStateNormal];//设置按钮在普通状态下的文字
[btn setTitle:@"摸我干啥"
forState:UIControlStateHighlighted];//设置按钮在高亮状态下的文字
[btn
setTitleColor:[UIColor redColor]
forState:UIControlStateNormal];//设置按钮在普通状态下的文字的颜色
[btn setTitleColor:[UIColor
blueColor] forState:UIControlStateHighlighted];//设置按钮在高亮状态下的文字颜色
[btn
addTarget:self action:@selector(btnClick:)
forControlEvents:UIControlEventTouchUpInside];监听按钮点击,当按钮点击时调用btnClick:方法
btn2.center = CGPointMake(250, 250);//设置按钮的中点位置
6 transform属性
btn.transform =
CGAffineTransformMakeRotation(-M_PI_4);//设置按钮的旋转属性,但不是在上一次的基础上进行旋转的,一直是相对于它最初的位置来讲的
btn.transform
= CGAffineTransformRotate(head.transform,
M_PI_4);//设置按钮在原来的基础上进行旋转45度,角度是正数:顺时针, 角度是负数:逆时针
head.transform =
CGAffineTransformMakeTranslation(0,
-100);//平移属性,,不是在上一次的基础上进行平移,一直是相对于它最初的位置来讲的
head.transform =
CGAffineTransformTranslate(head.transform, 0,
-100);在上一次的基础上进行平移
head.transform = CGAffineTransformMakeScale(1.5,
1.5);//缩放属性,1.5为缩放的比例,缩放比例小于1,是为缩小,大于1是为放大不是在上一次的基础上进行缩,一直是相对于它最初的位置来讲的
head.transform
= CGAffineTransformScale(head.transform, 1.5, 1.5);在上一次的基础上进行缩放
UIButton
*head = (UIButton *)[self.view viewWithTag:10];//获也Tag为10的那个按钮
7.imageView序列帧动画
- (void)runAnimationWithCount:(int)count name:(NSString
*)name
{
if (self.tom.isAnimating)
return;//如果动画正在播放,不允再继续播放
NSMutableArray *images = [NSMutableArray
array];//创建一个可变数组,存放所有的图
for (int i = 0; i<count; i++) {
NSString *filename = [NSString stringWithFormat:@"%@_%02d.jpg", name,
i];//根据传入的参数拼接图片名
NSBundle *bundle = [NSBundle
mainBundle];//获取应用程序的资源路径
NSString *path = [bundle pathForResource:filename
ofType:nil];//根据文件名获取该文件在应用程序中的资源路径
UIImage *image = [UIImage
imageWithContentsOfFile:path];//根据图片的路径获取一张图片
[images
addObject:image];//把图片添加到可变数组中
}
self.tom.animationImages =
images;//按顺序播放数组images中的图片
self.tom.animationRepeatCount =
1;//调置播放的次数
self.tom.animationDuration = images.count *
0.05;//设置播放的时间
[self.tom startAnimating];//开始播放动画
CGFloat delay =
self.tom.animationDuration + 1.0;//播放完毕一秒后清除内存
[self.tom
performSelector:@selector(setAnimationImages:) withObject:nil
afterDelay:delay];
}
注意:
用UIImage *image = [UIImage imageNamed:filename];获取图片会有缓存
UIImage
*image = [UIImage
imageWithContentsOfFile:path];//根据图片的路径获取一张图片,用这种方法获取的图片没有缓存
8.九宫格算法
int totalColumns = 3;//总列数(一行最多3列)
CGFloat appW =
85;//九宫格内部控件的宽度
CGFloat appH = 90;//九宫格内部控件的高度
间隙 = (控制器view的宽度 - 总列数
* 内部控件宽度) / 总列数+1
CGFloat marginX = (self.view.frame.size.width -
totalColumns * appW) / (totalColumns + 1);
CGFloat marginY = 15;
for (int index = 0; index<self.apps.count; index++) {
UIView
*appView = [[UIView alloc] init];
appView.backgroundColor = [UIColor
redColor];
int row = index / totalColumns;//计算当前所在的行
int col =
index % totalColumns;//计算当前所在的列
CGFloat appX = marginX + col * (appW +
marginX);//计算当前控件的x值 (间隔+当前所在的列*(控件的宽度+一个间隔));
CGFloat appY = 30 + row *
(appH + marginY);//计算当前控件的y值 (第一个控件Y的值 + 当前所在的行* (控件的高度 +
一个间隔));
appView.frame = CGRectMake(appX, appY, appW,
appH);//设置内部控件的位置和大小
[self.view
addSubview:appView];//把创建的控件添加到控制器View当中
}
9.通过xib创建局部控件,利用模型封装加载数据
1.创建一个模型XQApp来封装从plist文件文件中读取的数据.模型中要提供两个方法来来初始化模型
-
(instancetype)initWithDict:(NSDictionary *)dict;
+
(instancetype)appWithDict:(NSDictionary *)dict;
- (instancetype)initWithDict:(NSDictionary *)dict
{
if (self = [super init]) {
self.name = dict[@"name"];
self.icon = dict[@"icon"];
}
return self;
}
+ (instancetype)appWithDict:(NSDictionary *)dict//根据字典加载模型
{
return
[[self alloc] initWithDict:dict];
}
2.在控制器当中定义一个NSArray数组*apps,用来存放每一个封装好了的模型.采用懒加载方式,重写get方法
- (NSArray
*)apps
{
if (_apps == nil) {//判断数组中是否为空,
如果为空的放话,那么从plist文件加载数据.
NSString *path = [[NSBundle mainBundle]
pathForResource:@"app.plist" ofType:nil];//获取app.plist文件的资源路径
NSArray
*dictArray = [NSArray
arrayWithContentsOfFile:path];//从获取的路径中加载数组
NSMutableArray *tempAppArray =
[NSMutableArray array];//定义一个临时存放每一个模型的可加变数组!
for (NSDictionary *dict in
dictArray) {//遍历从plist文件中读取的数组
MJApp *app = [MJApp
appWithDict:dict];//将数组中取出的每一个字典放传入到模型的初始化方法中, 给模型进行赋值,然后返回这个模型
[tempAppArray
addObject:app];把返回的模型放到临时数组当中
}
_apps =
appArray;//把临时数中赋值给控制器定义的,app数组中.
}
return _apps;
}
3.创建一个名为MJAppView.xib的Xib文件,在xib文件中拖放一个View,再往view中拖入其它的子控件.
4.创建一个继承UIView类,
名为MJAppView,把xib的Custom Class中的class改为MJAppView
5.再把xib中的子控件拖线连到MJAppView中,做为MJAppView的属性.
6.在MJAppView头文件定义一个MJApp
*app;履性,然后重写app的set方法,给内总属性进行赋值
- (void)setApp:(MJApp *)app
{
_app = app;
self.iconView.image = [UIImage
imageNamed:app.icon];
self.nameLabel.text = app.name;
}
用来存入传入过来的模型数据.再提供一个类方法用来加载xib文件,并传入一个模型,给MJAppView中的app,属性时赋值,
+
(instancetype)appViewWithApp:(MJApp *)app;
+
(instancetype)appViewWithApp:(MJApp *)app
{
NSBundle *bundle =
[NSBundle mainBundle];
NSArray *objs = [bundle
loadNibNamed:@"MJAppView" owner:nil
options:nil];//读取xib文件(会创建xib中的描述的所有对象,并且按顺序放到数组中返回)
MJAppView *appView =
[objs lastObject];//获得返回xib对象数组中的最后一个元素
appView.app =
app;//给MJAppView中的app属性进行赋值,就会调用上面的set方法
return appView;//返回加载好的对象
}
7.在控件器当中创建给MJAppView对象
MJAppView *appView = [MJAppView
appViewWithApp:self.apps[index]];//index为控制器中app对象数组中的下标
[self.view
addSubview:appView];
10设置状态栏的样式为白色
- (UIStatusBarStyle)preferredStatusBarStyle
{
return UIStatusBarStyleLightContent;//状态栏的样式为白色
}
1-10(退出键盘,设置按钮的背景图,transform属性,imageView序列帧动画,九宫格算法...),布布扣,bubuko.com
1-10(退出键盘,设置按钮的背景图,transform属性,imageView序列帧动画,九宫格算法...)
标签:style class c tar ext color
原文地址:http://www.cnblogs.com/xqios/p/3726480.html