一、关于使用代码编辑页面控件时不同分辨率的自适应(可以参考自己项目:76天-项目实战--我的微信),还可以参考自己的项目:UI适配之-界面适配(使用宏的方式)
方法一:下面是基于76天的项目的。
前提:不适用故事版,使用代码方式来进行界面开发时,需要注意到不同分辨率对控件位置的影响,本文就是解决该问题。本文以一个图片位置为例:
步骤:
1:先在appDelegate.m获得分辨率,代码如下:
//获得当前屏幕尺寸大小
CGRect rect = self.window.frame;
2:在appDelegate.h中定义变量存储分辨率。
//存储分辨率
@property(assign, nonatomic) CGSize size;
3: 在appDelegate.m中给变量赋值分辨率。
//获得当前屏幕尺寸大小
CGRect rect = self.window.frame;
self.size = rect.size;
4:在所需要的界面(本项目是在:loginviewcontroller.m中)调用步骤 3 所赋值的 self.size。
AppDelegate * app = [UIApplication sharedApplication].delegate;
int width = app.size.width;
int height = app.size.height;
5: 之后根据分辨率对控件进行比例调节(这里就可以根据屏幕宽度高度来自动调节了。)
//头像
UIImageView * imageView = [[UIImageView alloc]initWithFrame:CGRectMake((width - 98)/2, 40, 98, 98)];
方法二: 下面是基于UI适配之-界面适配(使用宏的方式)的项目的。
#import "ViewController.h"
#define SCREENWIDTH [UIScreen mainScreen].bounds.size.width //定制宏 -- 手机屏幕的宽
#define SCREENHEIGHT [UIScreen mainScreen].bounds.size.height //定制宏 -- 手机屏幕的宽
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
NSLog(@"宽=%f,高=%f", SCREENWIDTH, SCREENHEIGHT);
UITextField * text = [[UITextField alloc]initWithFrame:CGRectMake(20, 20, SCREENWIDTH - 40, 40)];
}