美文网首页
代码细节

代码细节

作者: 执着的小蛋挞 | 来源:发表于2016-09-18 11:53 被阅读21次

一、结构体不能直接赋值

// 1. 改变头像的frame

// 1.1 获得当前头像的中心点, 并且临时保存起来

CGPoint tempCenter = self.headBtn.center;

// 1.2 修改临时结构体变量的值

tempCenter.y -= 10;

// 1.3 把修改完的结构体变量赋值给头像

self.headBtn.center = tempCenter;

// 1.1 获得当前头像的frame, 并且临时保存起来

CGRect tempFrame = self.headBtn.bounds;

// 1.2 修改临时结构体变量的值

tempFrame.size.width += 10;

tempFrame.size.height += 10;

// 1.3 把修改完的结构体变量赋值给头像

self.headBtn.bounds = tempFrame;

NSLog(@"%@", NSStringFromCGSize(self.headBtn.bounds.size));

⭐️frame:位置/尺寸

⭐️bounds:尺寸            CGRect

⭐️center:位置              CGPoint

⭐️transform:位置/大小/旋转

二、控件的transform属性

>>1. 平移

// 修改head的形变属性,在head "初始位置" 的基础上,y方向-100

head.transform = CGAffineTransformMakeTranslation(0, -100);

// 修改head的形变属性,在head "当前位置" 的基础上,y方向-100

head.transform = CGAffineTransformTranslate(head.transform, 0, -100);

>>2. 旋转

// 修改head的形变属性,在head "初始角度" 的基础上,逆时针旋转45°

head.transform = CGAffineTransformMakeRotation(-M_PI_4);

// 修改head的形变属性,在head "当前角度" 的基础上,逆时针旋转45°

head.transform = CGAffineTransformRotate(head.transform, M_PI_4);

>>3. 缩放

// 修改head的形变属性,在head "初始大小" 的基础上,x/y方向都拉伸1.5倍

head.transform = CGAffineTransformMakeScale(1.5, 1.5);

// 修改head的形变属性,在head "当前大小" 的基础上,x/y方向都拉伸1.5倍

head.transform = CGAffineTransformScale(head.transform, 1.5, 1.5);

三、instancetype和id的区别

/**

instancetype与id的区别

1. instancetype可以动态监测当前对象的真实类型, id只有在程序运行的时候才会知道当前对象的真实类型

2. instancetype只能作为返回值, 不能声明变量的.

*/

四、纯代码封装view的细节

1>  建议在:

- (id)initWithFrame:(CGRect)frame

方法里面初始化所有的子控件,并且添加到父控件上。但是不要在这里设置frame

2>  在 - (void)layoutSubviews方法里面设置子控件的frame

使用这个方法的时候注意:一定要调用

[super layoutSubviews];

3>  包含进来一个数据模型,重写模型的setter方法,给子控件设置数据

相关文章

  • 代码细节

    一、结构体不能直接赋值 // 1. 改变头像的frame // 1.1 获得当前头像的中心点, 并且临时保存起来 ...

  • 代码细节优化

    纯代码细节优化 使用下放代码创建一个视图

  • Node如何实现前端一键自动化部署

    直接给出细节代码

  • Clean Code

    整洁代码 代码呈现了需求的细节。将需求明确到机器可以执行的细节程度,就是编程要做的事。而这种规约正是代码。 勒布朗...

  • 基于redis模拟实现选主

    没时间写细节,直接上代码

  • Java代码细节优化

    1、进行I/O流操作时务必小心,在使用完毕后,及时关闭以释放资源。 2、尽可能使用局部变量 3、尽量减少对变量的重...

  • 有趣的代码细节

    byteToHexString LRU(Least Recently Used)近期最少使用算法 首字母大写

  • seq2seq 模型简介

    根据官网教程   模型的细节和代码我都不想详细讲了,但是会列出几条看代码之前没有注意到或者和我想象的不同的细节: ...

  • java代码性能优化总结

    代码优化的目标是: 1、减小代码的体积 2、提高代码运行的效率 代码优化细节 (1)尽量指定类、方法的final修...

  • java代码优化与运行性能总结

    代码优化的目标是: 1、减小代码的体积 2、提高代码运行的效率 代码优化细节 1、尽量指定类、方法的final修饰...

网友评论

      本文标题:代码细节

      本文链接:https://www.haomeiwen.com/subject/pebjettx.html