UI基础相关:
Frame 和 bounds的区别:
Frame是参照父控件的 bounds是参照自己的 默认是(0,0);
图片:
imageView.image=[UIImage imageNamed:@"1"];//把图片放在Assets.xcassets中的时候 直接写图片名字就可以,后缀都不用写
xib相关:
// 第一种加载XIB文件方式
NSArray *array = [[NSBundle mainBundle] loadNibNamed:@"test" owner:nil options:nil];
// 第二种加载XIB文件方式
// UINib *nib = [UINib nibWithNibName:@"test" bundle:[NSBundle mainBundle]];
// NSArray *array = [nib instantiateWithOwner:nil options:nil];
layoutSubViews
在外面是调整不了按钮内部子控件的位置和尺寸,因为到时候在按钮内部的layoutSubViews中会调整回来
05.内边距
内边距是相对控件里面的约束
UIEdgeInsetsMake(CGFloat top, CGFloat left, CGFloat bottom, CGFloat right)
四个元素的顺序:顶部,左边,下面,右边。
weak,Strong,copy, assign,retain的区别:
assign:
对基础数据类型 (NSInteger,CGFloat)和C数据类型(int, float, double, char, 等等)
copy:
对NSString会在内存里拷贝一份对象,两个指针指向不同的内存地址。一般用来修饰NSString等有对应可变类型的对象,因为他们有可能和对应的可变类型(NSMutableString)之间进行赋值操作,为确保对象中的字符串不被修改 ,应该在设置属性是拷贝一份。而若用strong修饰,如果对象在外部被修改了,会影响到属性。
retain:
对其他NSObject和其子类
weak:
修饰Object类型,修饰的对象在释放后,指针地址会被置为nil,是一种弱引用。在ARC环境下,为避免循环引用,往往会把delegate属性用weak修饰 开发中用于修饰控件
strong:
其实就是retain的意思,只不过ARC,MRC的用法,strong就是强引用,引用计数器会加1,
07.
UIScrollView 滚动范围
设置contentSize(内容尺寸),滚动范围
// 可滚动的尺寸 : contentSize的尺寸 减去 scrollView的尺寸
// 注意点:如果设置的contentSize尺寸小于 或者等于 scrollView的尺寸也是不可以滚动的
- 设置scrollView是否能够跟用户交互
设置scrollView是否能够跟用户交互(是否能够响应用户的点击.托跩等操作)
// 注意点:如果设置了scrollView的userInteractionEnabled = NO,scrollView以及它的子控件都不能跟用户交互
// self.scrollView.userInteractionEnabled = NO ;
09.UIScrollview的相关设置如下:
// 3.是否有弹簧效果
// self.scrollView.bounces = NO;
// 4.不管有没有设置contentSize,总是有弹簧效果(下拉刷新)
// self.scrollView.alwaysBounceHorizontal = YES;
// self.scrollView.alwaysBounceVertical = YES;
// 5.是否显示滚动条
// self.scrollView.showsHorizontalScrollIndicator = NO;
// self.scrollView.showsVerticalScrollIndicator = NO;
// 注意点:千万不要通过索引去subviews这个数组中去访问scrollView的子控件
// NSLog(@"22->%@",self.scrollView.subviews);
// [self.scrollView.subviews.firstObject removeFromSuperview];
10.contentOffset和contentInset的区别:
contentOffset是scrollview当前显示区域顶点相对于frame顶点的偏移量,可以理解为contentview的顶点相对于scrollerVIew的frame的偏移量。内容视图向上滚动contentOffset.y>0。
比如我写了一个UIScrollerView上面放了两张图片,初始的时候contentOffset.y==0。然后向上滚动contentOffset.y>0。
contentInset:
contentInset 是scrollview中contentView.frame.origin与scrollview.frame.origin的关系,比如contentView的frame为(0,30,320,480),那么contentInset则为(0, 30),
若scroller.contentInset = UIEdgeInsetsMake(50,0,0,0); 则内容视图开始的位置是(0,50)
若scroller.contentInset = UIEdgeInsetsMake(0,0,50,0);
那么contentView底部离scrollview底部的距离是50;
11.scrollView
/**
1.任何oc对象都可以作为scrollView的代理
2.苹果设计的delegate属性一定是weak
*/
12.继承自UIControl和UIView的区别:
//总结:继承UIControl的控件 可以调用addTarget 继承UIView 可以用代理delegate
//其中UITextField比较特殊 既能调用addTarget 也可以用代理delegate
- 开启分页功能
// 分页的标准:以scrollView的尺寸为一页
self.scrollView.pagingEnabled = YES;
网友评论