IOS开发-UI控件的常见属性

一.概述

程序运行过程中,我们经常要改变控件的显示状态,如下载进度、播放器的播放进度、图片的放大缩小等,那么如何修改呢?

二. 修改UI控件的状态

每个UI控件都是一个对象,要修改这个对象的状态就是要修改这个对象的属性,比如,修改UILabel显示的文字就修改UILabel的text属性

@interface UILabel : UIView <NSCoding>
@property(nonatomic,copy)   NSString           *text;            // default is nil
@end

修改按钮的背景图片就修改UIButton的 imageView 属性

1 @interface UIButton : UIControl <NSCoding>
2 @property(nonatomic,readonly,retain) UIImageView *imageView  NS_AVAILABLE_IOS(3_0);
3 ...
4 @end

由此可见,众多的UI控件都有一些自己的特定属性,但是有一些属性都是每个UI控件都具备的比如位置和尺寸,父控件子控件等所以将公共的属性提取到UIView中,所有的控件也都继承于UIView.

三. UIKit坐标系

在UIKit中,坐标系的原点(0,0)在左上角,x值向右正向延伸,y值向下正向延伸。

三.UIView的常见属性

1.获取自己的父控件对象.

@property(nonatomic,readonly) UIView      *superview;

2.获取自己的子控件,子控件以数组形式存放,第一个添加的就是数组0.

@property(nonatomic,readonly,copy) NSArray *subviews;

NSLog(@"%ld个子控件\n",self.view.subviews.count);

结果为2 button2算做是绿色控件的的子控件.

3.控件的id\标识父控件可通过tag来区分,可在右侧赋值。

@property(nonatomic,readonly,copy) NSArray *subviews;

tag的使用:

- (IBAction)click:(UIButton *)but
{
    NSLog(@"按钮被点击了\n");
    if(but.tag ==12)
    {
         NSLog(@"上面的按钮被点击了\n");
    }
    else if(but.tag == 31)
    {
        NSLog(@"下面的按钮被点击了\n");
    }
    NSLog(@"%ld\n",but.tag);
}

4.控件的形变属性(可以设置旋转角度、比例缩放等属性)

@property(nonatomic) CGAffineTransform transform;  

1》 表示控件的形变状态(旋转角度、缩放比例等)

2》 创建CGAffineTransform类型数据的函数

此属性需要CGAffineTransform类型数据,创建此类型数据的常用函数

// 创建一个x,y方向的伸缩比例为sx和sy的形变值
CGAffineTransform CGAffineTransformMakeScale(CGFloat sx, CGFloat sy)

// 在原形变值t的基础上再次进行x,y方向的伸缩比例为sx和sy的形变
CGAffineTransform CGAffineTransformScale(CGAffineTransform t,
  CGFloat sx, CGFloat sy)

// 创建旋转角度为angle的形变值
CGAffineTransformMakeRotation(CGFloat angle)

// 在原形变值t的基础上在进行angle角度的旋转
CGAffineTransformRotate(CGAffineTransform t, CGFloat angle);

清空之前多有的形变属性

_btn.transform = CGAffineTransformIdentity;

5.控件的位置和尺寸(以父控件的左上角为坐标原点),自己左上角的坐标

@property(nonatomic) CGRect frame;

6.控件中点的位置(以父控件的左上角为坐标原点)

@property(nonatomic) CGPoint center;

7.控件所在矩形框的位置和尺寸(以自己左上角为坐标原点,所以bounds的x\y一般为0)

@property(nonatomic) CGRect bounds;

五. UIView的常见方法

1.添加一个子控件view

- (void)addSubview:(UIView *)view;

2. 从父控件中移除

- (void)removeFromSuperview;

3.根据一个tag标识找出对应的控件(一般都是子控件)

- (UIView *)viewWithTag:(NSInteger)tag;

时间: 2024-10-08 04:54:59

IOS开发-UI控件的常见属性的相关文章

UI控件的常见属性

UIView的常见属性: //获得自己的父控件对象 @property(nonatomic,readonly) UIView *superview; //获得自己的所有子控件对象 @property(nonatomic,readonly,copy) NSArray *subviews; //控件的ID\标识,父控件可以通过tag来找到对应的子控件 @property(nonatomic) NSInteger tag; //控件的形变属性(可以设置旋转角度.比例缩放.平移等属性 @property

IOS学习资源收集--开发UI控件相关

收集的一些本人了解过的iOS开发UI控件相关的代码资源(本文持续补充更新) 内容大纲: 1.本人在github上也上传了我分装好的一些可重复利用的UI控件 2.计时相关的自定义UILabel控件 正文: 1.本人在github上也上传了我分装好的一些可重复利用的UI控件 示例: 网址:https://github.com/HeYang123456789/UIView 2.计时相关的自定义UILabel控件 网址:https://github.com/mineschan/MZTimerLabel

IOS开发 UIView控件

1.万物皆对象 2.LBS:基于位置的服务(热门) 3.在启动XCODE创建项目的时候最好勾选 git 4.在SB界面中更改UILabel 之类的控件里面的内容,控件的frame会随着内容的大小而改变,但是在右侧的属性栏里面更改则不会影响frame 5.IBAction:SB界面原来叫Interface Builder 缩写为IB, 6.M_PI_4  代表45°  以此类推 // OC语法规定:不允许直接修改 某个对象中结构体属性的成员 ? 1 2 3 4 5 6 7 8 // 1.先取出fr

iOS开发UI篇—CAlayer层的属性(转摘)

iOS开发UI篇—CAlayer层的属性 一.position和anchorPoint 1.简单介绍 CALayer有2个非常重要的属性:position和anchorPoint @property CGPoint position; 用来设置CALayer在父层中的位置 以父层的左上角为原点(0, 0) @property CGPoint anchorPoint; 称为“定位点”.“锚点” 决定着CALayer身上的哪个点会在position属性所指的位置 以自己的左上角为原点(0, 0) 它

iOS 使用UI控件的外观协议UIAppearance进行设置默认UI控件样式

在iOS开发中,经常会对UINavigationBar的样式进行全局样式.采用的设置方式有两种: 第一种,采用方式如下: [UINavigationBar appearance] 这种是对一类对象的默认全局外观样式设置,它对设置时机有要求. 通常需要在UIWindow的viewlayout之前.错过了时机后,设置是没有效果的. 可以选择在下面方法内设置: - (BOOL)application:(UIApplication *)application didFinishLaunchingWith

UI控件的常用属性

IOS创建项目介绍 界面: 取消第一响应者 [self.<textfield> resignFirstResponder]; 结束视图的编辑: [self.view endEditing:YES]; 按钮的用法说明: 创建一个按钮: UIButton *btn = [[UIButton alloc] initWithFrame:CGRectMake(<#CGFloat x#>, <#CGFloat y#>, <#CGFloatwidth#>, <#CG

从零开始iOS8编程【iOS开发常用控件】

郝萌主倾心贡献,尊重作者的劳动成果,请勿转载. 如果文章对您有所帮助,欢迎给作者捐赠,支持郝萌主,捐赠数额随意,重在心意^_^ 我要捐赠: 点击捐赠 Cocos2d-X源码下载:点我传送 AlertView控件 弹出对话框: 修改HelloHaoMengZhu项目代码, 添加AlertView: -(IBAction)testAlert { NSString *str = [[NSString alloc] initWithFormat:@"Hello, %@",txtField.te

iOS 中UI控件的各种对齐方式总结

1.textAligment : 文字的水平方向的对齐方式 取值 NSTextAlignmentLeft      = 0,    // 左对齐 NSTextAlignmentCenter    = 1,    // 居中对齐 NSTextAlignmentRight    = 2,    // 右对齐 哪些控件有这个属性 一般能够显示文字的控件都有这个属性 UITextField UILabel UITextView ... (UILabel 默认是居中对齐的,并没有提供顶部对齐的方式-_-,

IOS开发之控件frame/bounds/center尺寸改变小技巧-简单给UIView新增分类(github链接)

大家是否还记得对控件的frame/bounds/center进行属性更改时的三部曲? 1>将结构体取出 2>改变取出后的结构体对应的数据 3>将修改后的结构体赋值给控件 CGRect frame = self.view.frame; // your code... frame.origin.x = frameX; // your code... self.view.frame = frame; 这在实际工作中需要更改相应属性的时候是很不方便的,所以考虑到直接在UIView的分类中添加相应