-
什么叫控件?
- 屏幕上所有UI元素都叫做控件(也有叫做视图、组件)
-
控件的共同属性
- 尺寸
- 位置
- 背景色
- ...
-
苹果将控件的共同属性都抽取到父类UIView中
- 所有控件最终都继承自UIView
父子控件
- 每个控件都是一个容器,都可以容纳其他控件
- 内部的小控件是大控件的子控件
常用属性
-
获得自己的父控件对象
@property(nonatomic,retain)UIView *superview;
-
获得自己的所有子控件对象 -数组元素的顺序决定了子控件的显示层级
@property(nonatomic,readonly,copy)NSArray *subview;
-
-(void)addSubview:(UIView *)view;
- 添加一个子控件view
- 例:- (IBAction)buttonClick { UISwitch *s = [[UISwitch alloc]init]; [self.view addSubview:s]; }
-
(void)removeFormSuperview;
- 从父控件中移除
-
-(UIView *)viewWithTag:(NSInteger)tag;
- 根据一个tag标识找出对应的控件(一般都是子控件)
-
-(UIView *)viewWithTag:(NSInteger)tag;
- 根据一个tag标识找出对应的控件(一般都是子控件)
//CGRect是一个结构体,有四个小属性,位置坐标和大小
//控件矩形框在父控件中得位置和尺寸(以父控件的左上角为坐标原点)
//向右为x正方向,纵向向下为y轴正方向。x,y分别表示距矩形边框的距离
- @property(nonatomic)CGRect frame;
- @property(nonatomic)CGRect bounds;
//控件矩形框的位置和尺寸(以自己左上角为坐标原点,所以bounds的x、y一般为0)
- @proerty(nonatomic)CGPoint center;
//控件中点的位置(以父控件的左上角为坐标原点)
注意点
- 在按钮设置时候,type属性初始情况下是system状态,此时在按钮点击时候,会变灰。
- 当自己定义按钮高亮、不可用等状态的时候,需要将type属性设置为Custom(自定义)
显示指示器
- 隐藏控件的几种方法
self.addBtn.hidden = YES; 设置为隐藏
self.addBtn.alpha = 0; 设置透明度,默认是1.0(100%不透明)
[self.addBtn removeFormSuper]; 直接删除
SEL类型其实就是对方法的包装 @selector(方法名)
实现计时器的方法
- 方法1:performSelector
[self performSelector:@selector(hideHUD) withObject:nil afterDelay:2.0] 参数一:SEL方法 参数二:参数 参数三:?s延迟
- 方法2:GCD
-
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
self.hud.alpha = 0.0;
});
-
方法3:NSTimer(当repeats=YES时候,则每隔1.5s调用一次方法)
- [NSTimer scheduledTimerWithTimeInterval:1.5 target:self selector:@selector(*) userInfo:nil repeats:NO];
HUD
- 其他说法:指示器、遮盖、蒙板
- 半透明的HUD做法:
- 背景色设置为半透明颜色
常见问题
-
项目里面的某个.m文件无法使用 -:Build Phases -> Complie Sources
-
项目里面的某个资源文件(比如plist、音频等)无法使用
- 检查:Build Phases -> Copy Bundle Resource
- 什么是模型?
- 专门用来存放数据的对象
- 一般都是一些直接集成NSObject的纯对象
- 内部会提供一些属性存放数据