控件的基本使用-iOS—UI笔记
2023-09-27 14:26:37 时间
![控件的基本使用-iOSUI笔记 QQ20150805-2](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
![控件的基本使用-iOSUI笔记 QQ20150805-3](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
![控件的基本使用-iOSUI笔记 QQ20150805-4](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
![控件的基本使用-iOSUI笔记 uiapplication01](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
![控件的基本使用-iOSUI笔记 QQ20150805-6](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
![控件的基本使用-iOSUI笔记 QQ20150805-7](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
![控件的基本使用-iOSUI笔记 QQ20150805-8](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
![控件的基本使用-iOSUI笔记 QQ20150805-9](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
//点击登陆按钮后会触发的单击事件 - (IBAction)login;
![控件的基本使用-iOSUI笔记 QQ20150805-12](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
![控件的基本使用-iOSUI笔记 uiapplication](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
![控件的基本使用-iOSUI笔记 QQ20150805-14](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
![控件的基本使用-iOSUI笔记 QQ20150805-15](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
![控件的基本使用-iOSUI笔记 QQ20150805-16](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
![控件的基本使用-iOSUI笔记 QQ20150805-17](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
![控件的基本使用-iOSUI笔记 QQ20150805-18](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
![控件的基本使用-iOSUI笔记 QQ20150805-19](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
![控件的基本使用-iOSUI笔记 QQ20150806-1](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
![控件的基本使用-iOSUI笔记 QQ20150806-2](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
@interface ViewController () //图片按钮 @property (weak, nonatomic) IBOutlet UIButton *btnPic;
//控制图片移动、缩放的方法 - (IBAction)move:(UIButton *)sender;
//控制图片旋转的方法 - (IBAction)rotate;
@end
@implementation ViewController
- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. }
- (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. }
//控制图片移动、缩放的方法 - (IBAction)move:(UIButton *)sender { CGRect picFrame = self.btnPic.frame; switch (sender.tag) { case 10: //上移,y坐标减少,x坐标不变 picFrame.origin.y -= 30; break; case 20: //下移,y坐标增加,x坐标不变 picFrame.origin.y += 30; break; case 30: //左移,x坐标减少,y坐标不变 picFrame.origin.x -= 30; break; case 40: //右移x坐标增加,y坐标不变 picFrame.origin.x += 30; break; case 50: //增大,宽、高增大,以图片左上角坐标为基点增大 picFrame.size.width += 30; picFrame.size.height += 30; break; case 60: //缩小,宽、高减少,以图片左上角坐标为基点缩小 picFrame.size.width -= 30; picFrame.size.height -= 30; break; } //修改图片按钮的frame时增加动画效果 [UIView animateWithDuration:0.5 animations:^{ self.btnPic.frame = picFrame; }]; }
- (IBAction)rotate { // //再改变transform的时候增加动画效果 // [UIView animateWithDuration:0.5 animations:^{ // //以图片中心点为基点增大、缩小。当参数为正数就是增大,负数缩小 // //对控件在之前大小基础上进行大小缩放 // self.btnPic.transform = CGAffineTransformScale(self.btnPic.transform, 1.5, 1.5); // }]; // //再改变transform的时候增加动画效果 // [UIView animateWithDuration:0.5 animations:^{ // //对控件在之前位置基础上进行位置变换,x、y坐标同时变化 // self.btnPic.transform = CGAffineTransformTranslate(self.btnPic.transform, 30, 30); // }]; //再改变transform的时候增加动画效果 [UIView animateWithDuration:0.5 animations:^{ //对控件在之前角度基础上进行角度旋转变换,注意IOS中的旋转不是以度数做单位,而是以弧度做为单位。 //弧度制的书写方式:M_PI=180度 M_PI_2:90度,正值表示顺时,负值逆时 self.btnPic.transform = CGAffineTransformRotate(self.btnPic.transform, -M_PI_4); }]; } @end 至此,这个应用就完成了,效果图就是我前面截图的第一张。 注意: default:按钮添加后还没有进行任何操作时的状态 hightLighted:按钮被点击时还没有松开鼠标时的状态 disabled:按钮不可用状态 image:显示与文字一起存在的小图 ,通常它不会填满整个按钮。 backgroundImage:显示整个按钮的背影图片,一般它会填满整个按钮。 按钮在高亮状态下设置的backgroundImage会变灰,这是它的系统自带属性决定的,如果想不显示系统默认的样式,则需要将Type设置为custom 四、控件的常用属性
通过修改frame.origin、frame.size来控制控件的位置和大小,以左上角的坐标为控件原点坐标。
![控件的基本使用-iOSUI笔记 frame01](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
center代表控件的几何中心点,由于表示一个点,就是类型是CGPoint,里面有两个属性CGFloat x,CGFloat y分别代码控件的x、y轴方向的坐标值,所以通过修改center也能达到修改控件坐标的目的。
![控件的基本使用-iOSUI笔记 point01](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
bounds描述控件的边界,类型是CGRect,类似于frame,我们也可以通过个性bounds属性的值来修改控件的大小。注意bounds是以中心点做为参考来进行变化的,这点与frame不一样,frame是以左上角做为参考原点的。注意不要使用bounds属性修改控件的坐标值。
![控件的基本使用-iOSUI笔记 bounds01](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
transform称为矩陈变换,它可以实现控件的旋转绽放等操作。如果只是普通的移动,一般会考虑使用frame,如果是旋转操作,那么一般会考虑transform。transform是参考控件的原始坐标进行变换的,在多次变换的时候每一次变换的基础需要建立在前一次变换的基础之上。 弧度制的书写方式:M_PI=180度 M_PI_2:90度,正值表示顺时针,负值表示逆时针。
CGAffineTransform CGAffineTransformTranslate(CGAffineTransform t,CGFloat tx, CGFloat ty);
//对控件在之前大小基础上进行大小缩放 CGAffineTransform CGAffineTransformScale(CGAffineTransform t,CGFloat sx, CGFloat sy);
//对控件在之前角度基础上进行角度旋转变换,注意IOS中的旋转不是以度数做单位,而是以弧度做为单位。 CGAffineTransform CGAffineTransformRotate(CGAffineTransform t,CGFloat angle);
iOS开发者如何做到升职加薪到25k?6年开发 架构师笔记送给你! 对于我们绝大多数人来说,工作最基本的意义是我们可以通过自己的劳动换取酬劳来养活自己,尤其是对于刚毕业的学生,拥有一份全日制的工作意味着自己走出校园,踏上社会,自己真正开始独立起来。
百度在职 iOS 架构师的成长笔记,送给还在迷茫的你! 我们经常在网上会看到这样的文章,你的同龄人正在如何如何......。这是典型的贩卖焦虑的文章。的确,现阶段,刚毕业几年的年轻人,面临车,房子等,有时候压力挺大的。 但你过度焦虑的话,每天生活在恐慌当中,你会发现你生活过得一团糟。
建议50:了解对象的alloc 和 init... alloc 分配过程不仅进行对象的内存分配,还初始化对象的两个小而非常重要的属性,即它的isa实例变量和保持数。
建议45:设计模式是特定环境下的特定问题的解决方案 设计模式是某种特定设计的模板或指导原则。 建议46:MVC模式是一种复合或聚合模式 MVC 是一种高级别的模式,关注的是应用程序的全局架构,并根据各种对象在程序中发挥的作用对其进行分类。
我们发现 Class 本身也有一个isa指针,指向的是它的MetaClass。 当我们对一个实例发送消息时(-开头的方法),会在该 instance 对应的类的 methodLists 里查找。
建议33:使用类别把类的实现拆分成不同的文件 类别可以访问其继承的类的实例变量,类别的方法具有最高的优先级类别,可以分散到不同的文件中,甚至不同的框架中。
Cocoa 是一套框架和运行时支持,简单来说就是API应用程序接口。与你耳熟能详的MFC、dotNet、C标准库评级。 Cocoa touch 是cocoa在iOS上的实现,也是iOS上唯一的框架,开发iOS App,简单来说,OC是开发语言,Cocoa touch 是框架。
相关文章
- IOS-UITableView入门(3)
- iOS开发学习笔记:基础篇
- iOS开发基础知识:Core Animation(核心动画)
- 一步一步教你实现iOS音频频谱动画(一)
- Android仿IOS底部弹出选择菜单ActionSheet
- 在iOS中怎样创建可展开的Table View?(下)
- 文顶顶 iOS开发UI篇—UITabBarController简单介绍 iOS开发UI篇—UITabBarController简单介绍
- iOS学习笔记-地图MapKit入门
- SwiftUI 完整项目大全之完整笔记coredata增删改查轻松收集、组织和共享文本的iOS和macOS应用程序
- iOS布局进化史
- iOS 开发之— NSURLProtocol
- 兼容iOS 10 资料整理笔记
- iOS runtime 运行时( - )
- iOS性能优化
- 利用Qt开发跨平台APP(二)(iOS,使用Qt5.9,很详细,有截图)
- 《慕客网:IOS动画案例之会跳动的登入界面(上)》学习笔记 -Sketch的使用
- <极客学院>视频教程学习笔记-iOS中CALayer的使用