iPhone布局
来源:互联网 发布:软件导刊版面费 编辑:程序博客网 时间:2024/04/28 02:24
1.获取屏幕高宽?
CGRect rect = [[ UIScreen mainScreen] bounds];//返回的是带状态栏的rect.
CGRect rect =[[ UIScreen mainScreen] applicationFrame];//返回的是不包含状态栏的rect;
CGSize size = rect.size;
CGFloat width = size.width;
CGFloat heigh = size.height;
要记住CGRect 有四个属性,和CGSize只有两个。
2.获取view的高宽?以及位置?
CGRect rect = self.view.frame;
CGSize size = rect.size;
CGPoint origin = rect.origin(原点);
CGFloat x= origin.x;
CGFloat y = origin.y;
3.自定义view ,手动加载?
UIView* myView =[[ UIView alloc]initWithFrame:CGRectMake(0.0,0.0,200.0,400.0)];
需要特别说明的是这里的rect是相对于父视图的位置,以及大小。
如果一个view 需要加载另一个 xib 文件,首先是加载nib(如果有xib文件的话,也可以是自定义的初始化方法。
像
1.无xib
AMRatingControl *simpleRatingControl = [[AMRatingControlalloc]initWithLocation:
CGPointMake(0,0)andMaxRating:5];
这是一个自定义的 ratingControl ,它本质上还是一个view 。这是没有xib 文件的。在代码里有设置了自定义控件的宽以及高。
而传入了它相对父视图的原点,当然这里也可以写在里面。 如果写在里面,也就是说他的frame是已经确定好了。
如果frame 是确定好了的话就不需要再设置约束了。
2.有xib
在.h文件中需要声明公开的类方法。在.m文件中实现。
+ (instancetype)freeTelGroupHeadView {
return [[[NSBundlemainBundle]loadNibNamed:@"FreeTelGroupHeadView"owner:niloptions:nil]lastObject];
}
首先来看看如何用代码初始化一个view。
NSLayoutConstraint *layoutX = [NSLayoutConstraintconstraintWithItem:headerView1attribute:NSLayoutAttributeCenterXrelatedBy:NSLayoutRelationEqualtoItem:headerViewattribute:NSLayoutAttributeCenterXmultiplier:1.0constant:0];
NSLayoutConstraint *layoutY = [NSLayoutConstraintconstraintWithItem:headerView1attribute:NSLayoutAttributeCenterYrelatedBy:NSLayoutRelationEqualtoItem:headerViewattribute:NSLayoutAttributeCenterYmultiplier:1.0constant:0];
NSLayoutConstraint *layoutH = [NSLayoutConstraintconstraintWithItem:headerView1attribute:NSLayoutAttributeHeightrelatedBy:NSLayoutRelationEqualtoItem:headerViewattribute:NSLayoutAttributeHeightmultiplier:1.0constant:0];
NSLayoutConstraint *layoutW = [NSLayoutConstraintconstraintWithItem:headerView1attribute:NSLayoutAttributeWidthrelatedBy:NSLayoutRelationEqualtoItem:headerViewattribute:NSLayoutAttributeWidthmultiplier:1.0constant:0];
NSArray *array =@[layoutH,layoutW,layoutX,layoutY];
[headerViewaddConstraints:array];
4.在这个自定义的星级等级评价当中,长宽已经确定,但是还有x,y 位置不确定,需要输入相对应view的坐标点,那换一个角度想,也可以加两个约束咯。
那可以在xib中定义个view,这样就可以放在view里面,x=0,y= 0,那再将view与其他的控件设置约束。
那如果就把这个自定义星级等级评价当做view,那需要设置约束,需要添加到view,当中。这样就需要用代码设置约束了。(可以尝试一下)。
- iPhone布局
- iPhone自动布局
- iPad与iPhone屏幕布局
- iPhone 6的自适应布局
- iPhone 6的自适应布局
- iPhone 6的自适应布局
- IPhone 6的自适应布局
- Android与iPhone界面布局对比
- Android与iPhone应用程序界面布局对比
- Android和iPhone应用程序界面布局示例
- iphone 与 ipad 的自动布局
- Android 和 iPhone 界面布局示例
- Android和iPhone应用程序界面布局示例
- 仿Iphone中搜索结果的布局
- 关于自适应iphone、ipad布局的代码
- 为iPhone 6设计自适应布局
- 为iPhone 6设计自适应布局
- 为iPhone 6设计自适应布局
- java.lang.NoSuchFieldError 和 NoSuchMethodError
- beans.xml 和 applicationContext.xml配置区别
- Spring MVC 教程,快速入门,深入分析
- IOS圆形带边头像
- 打印资料
- iPhone布局
- 安装debian7.8后的初始工作
- PHP错误级别以及错误代码errno
- ElasticSearch更新字段类型的具体解决办法(重要)
- 友元类 运算符重载 new结构体数组
- Android Application的作用
- adb.exe被占用
- OMT 对象模型、动态模型和功能模型
- Qt5.4.2+win7的GUI界面设计