iOS设计中不同屏幕适配的方法-登陆界面

在iOS的手机界面设计中,由于不同手机类型的手机的尺寸不同,那么在设计手机界面时就得对屏幕进行适配,这里就以登陆界面的设计为例简单说明下 实现屏幕适配的方法:(屏幕自动适配缩放)

效果:

下面就看下代码实现的过程:

1、在代理中实现的代码:

AppDelegate.h
//  登陆界面设计

#import <UIKit/UIKit.h>

#define  ScreenHeight [[UIScreen mainScreen]bounds].size.height//屏幕高度
#define  ScreenWidth  [[UIScreen mainScreen]bounds].size.width//屏幕宽度
@interface AppDelegate : UIResponder <UIApplicationDelegate>

@property (strong, nonatomic) UIWindow *window;
@property(assign,nonatomic)float autoSizeScaleX;//缩放X
@property(assign,nonatomic)float autoSizeScaleY;//缩放Y

@end
AppDelegate.m
//  登陆界面设计

#import "AppDelegate.h"

@interface AppDelegate ()

@end

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    AppDelegate *myDelegate=[[UIApplication sharedApplication]delegate];
    if (ScreenHeight>480) {//屏幕高度大于4S的高度时 等比缩放操作
        myDelegate.autoSizeScaleX=ScreenWidth/320;//屏幕宽度缩放比率
        myDelegate.autoSizeScaleY=ScreenHeight/480;//屏幕高度缩放比率
    } else {
        myDelegate.autoSizeScaleX=1.0;
        myDelegate.autoSizeScaleY=1.0;
    }

    return YES;
}

2、在ViewController中实现的过程

ViewController.h
//  登陆界面设计
#import <UIKit/UIKit.h>
#import "AppDelegate.h"
@interface ViewController : UIViewController<UITextFieldDelegate>
@property(strong,nonatomic)UITextField *textNmae;//编辑文本框
@property(strong,nonatomic)UIView *myView;//编辑下划线
@property(strong,nonatomic)UIImageView *imageView;//图标
@property(strong,nonatomic)UIButton *myButton;//控制按钮

@end
ViewController.m
//  登陆界面设计

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    //背景图
    self.imageView =[[UIImageView alloc]initWithImage:[UIImage imageNamed:@"beijing.png"]];
    //图标1
    [self.view addSubview:self.imageView];
    self.imageView=[[UIImageView alloc]initWithFrame:CGRectMake1(50,20, 200, 30)];
    self.imageView.image=[UIImage imageNamed:@"[email protected]"];
    [self.view addSubview:self.imageView];

    //图标2
    [self.view addSubview:self.imageView];
    self.imageView=[[UIImageView alloc]initWithFrame:CGRectMake1(30,60, 20, 20)];
    self.imageView.image=[UIImage imageNamed:@"[email protected]"];
    [self.view addSubview:self.imageView];

    //图标3
    [self.view addSubview:self.imageView];
    self.imageView=[[UIImageView alloc]initWithFrame:CGRectMake1(30,100,20, 20)];
    self.imageView.image=[UIImage imageNamed:@"[email protected]"];
    [self.view addSubview:self.imageView];
    //图标4
    [self.view addSubview:self.imageView];
    self.imageView=[[UIImageView alloc]initWithFrame:CGRectMake1(100,400,100, 30)];
    self.imageView.image=[UIImage imageNamed:@"[email protected]"];
    [self.view addSubview:self.imageView];
    //下划线1
    self.myView=[[UIView alloc]initWithFrame:CGRectMake1(30, 85, 240, 1)];
    self.myView.backgroundColor=[UIColor whiteColor];
    [self.view addSubview:self.myView];
    //下划线2
    self.myView=[[UIView alloc]initWithFrame:CGRectMake1(30, 125, 240, 1)];
    self.myView.backgroundColor=[UIColor whiteColor];
    [self.view addSubview:self.myView];

    //文本编辑1
    self.textNmae=[[UITextField alloc]initWithFrame:CGRectMake1(60, 55, 210, 30)];
    self.textNmae.placeholder=@"请输入手机号";
    self.textNmae.font=[UIFont systemFontOfSize: 25];
    self.textNmae.alpha=0.5;
    self.textNmae.keyboardType = UIKeyboardTypeNumberPad;//键盘类型
    self.textNmae.clearButtonMode=UITextFieldViewModeAlways;//X总数存在
    [self.view addSubview:self.textNmae];

    //文本编辑2
    self.textNmae=[[UITextField alloc]initWithFrame:CGRectMake1(60, 95, 210, 30)];
    self.textNmae.placeholder=@"请输入密码";
    self.textNmae.secureTextEntry=YES;//安全密码
    self.textNmae.font=[UIFont systemFontOfSize: 25];
     self.textNmae.alpha=0.5;
     self.textNmae.delegate=self;
    self.textNmae.clearButtonMode=UITextFieldViewModeAlways;//X总数存在
    [self.view addSubview:self.textNmae];

    //登录按钮
    self.myButton=[[UIButton alloc]initWithFrame:CGRectMake1(30, 140, 240, 30)];
    [self.myButton setTitle:@"登录" forState:UIControlStateNormal];
    [self.myButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
    self.myButton.backgroundColor=[UIColor colorWithRed:arc4random()%256/255.0 green:arc4random()%256/255.0  blue:arc4random()%256/255.0  alpha:1.0];
    [self.myButton.layer setCornerRadius:10];//圆角
    [self.view addSubview:self.myButton];

    //注册按钮
    self.myButton=[[UIButton alloc]initWithFrame:CGRectMake1(30, 180, 240, 30)];
    [self.myButton setTitle:@"注册" forState:UIControlStateNormal];
    [self.myButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
    self.myButton.backgroundColor=[UIColor colorWithRed:arc4random()%256/255.0 green:arc4random()%256/255.0  blue:arc4random()%256/255.0  alpha:1.0];
    [self.myButton.layer setCornerRadius:10];//圆角
    [self.view addSubview:self.myButton];

}
//隐藏键盘
-(BOOL)textFieldShouldReturn:(UITextField *)textField
{
    if ([textField isFirstResponder]) {
        [textField resignFirstResponder];
    }
    return YES;
}

//适配缩放方法
  CG_INLINE CGRect
 CGRectMake1(CGFloat x, CGFloat y, CGFloat width, CGFloat height)
{
    CGRect rect;
    AppDelegate *myDelegate=[[UIApplication sharedApplication]delegate];
    rect.origin.x=x*myDelegate.autoSizeScaleX;//坐标轴缩放
    rect.origin.y=y*myDelegate.autoSizeScaleY;
    rect.size.width=width*myDelegate.autoSizeScaleX;//尺寸缩放
    rect.size.height=height*myDelegate.autoSizeScaleY;
    return rect;

}
时间: 2024-12-27 02:47:35

iOS设计中不同屏幕适配的方法-登陆界面的相关文章

ios中object c纯代码开发屏幕适配处理方法

纯代码开发屏幕适配处理方法: 为适配iphone各个版本的机型,对ui布局中的坐标采用比例的方式进行初始化,在这里选定iphone6作为ui布局 1.首先在AppDelegate.h中定义两个属性: 1 #import <UIKit/UIKit.h> 2 3 @interface AppDelegate : UIResponder <UIApplicationDelegate> 4 5 @property (strong, nonatomic) UIWindow *window;

iOS程序中打开其他程序的方法

1.1 如果被打开程序不是自己的,则要找到被打开App的URL Schemes. http://jbguide.me/2012/09/12/how-to-find-url-schemes%EF%BC%9F/ 1.2 如果被打开程序是自己写的,那么写程序时要实现 1) appname-info.plist里增加 <key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleURLSchemes<

QML 中的屏幕适配问题

QML 中的屏幕适配问题 其实 QML 中的屏幕适配问题,官方也写了一篇文章,如何在不同分辨率下适配控件大小和图片大小(字体好像没有讲到).虽然文章条理清晰,原理,案例都写得不错,但是总觉得缺点什么.对,就是代码,具体实现的代码.从头到尾,原理阐述清晰,唯独就是不写出具体的代码实现. 有人说,具体的代码实现可能很复杂.倒不至于,这里给出一段最简单的使用纯 QML 实现的 dp,至于 dpi 什么,管它呢. import QtQuick.Window 2.0 import QtQuick 2.5

【原】iOS 设计中 图片后期简单处理的完美组合

iOS 设计中 图片后期简单处理的完美组合 四张图+.DS_Store (3张alpha通道“是”,1张没有alpha通道) 5,909,971 字节(磁盘上的 5.9 MB),共 5 项 第一步:转非alpha通道,工具 Alpha-Channel-Remover https://github.com/bpolat/Alpha-Channel-Remover  这个地址就哦了 http://alphachannelremover.blogspot.com 这个墙内墙外都试过没打开 转完后:变小

iOS开发过程中,是用Storyboard/xib做界面,还是用代码来写界面,还是混合使用

以下是个人观点,非喜勿喷 关于iOS 开发过程中,是用Sb/xib 做界面 还是代码写界面,一直是讨论不断 各自成帮结派, 拖拉派.代码派.中间派 1. 拖拉派 ,Storyboard/xib 使用者, 像是海贼王里的能力者,开发快.Auto Layout .结构清晰,直观,一目了然 (个人觉得,小项目如此,超过10个界面以上,界面关系在复杂的话,看起来真是一团糟),能力者是有缺点的不会游泳, 同样Storyboard/xib 同样有它的缺点:(以下摘自) a). 所有的ViewControll

iOS 设计中关于UIScrollViewDelegate的几个代理方法的简单介绍

在ios设计的过程中,对于UIScrollView这个控件对于开发者而言都不会陌生,在处理UI界面的时候我们经常会用到UIScrollView,既然用到了UIScrollView,那么UIScrollView的几个代理方法就无法避免的被使用了.本文并不介绍UIScrollView的相关属性,就介绍几个代理方法. / 此方法在scrollView滑动时会被调用多次,只要scrollView.contentOffset发生改变就会被调用 / (void)scrollViewDidScroll:(UI

iOS中的屏幕适配之Autolayout(初级)

这是第二篇博客啦啦啦,来来来,嗨起来,今天我们要说的时iOS的屏幕适配,随着APPLE推出的手机越来越多,屏幕的尺寸也越来越多,而屏幕的适配确是相当的麻烦,今天我要说的,网上也许早就有了,我只是说出自己的理解(可能不对啊,勿喷....) Autolayout其实就是约束了,今天讲得是代码添加约束,用到的第三方是Masonry,相信代码写约束的都知道这个第三方库,好了,废话不多说,代码搞起 首先你要去下载个Masonry,或者用cocoapods加到工程中,先来个简单点得例子啊,下面请重点看注释啊

iOS开发UI篇—屏幕适配autoResizing autoLayout和sizeClass图文详解

1. autoResizing autoresizing是苹果早期的ui布局适配的解决办法,iOS6之前完全可以胜任了,因为苹果手机只有3.5寸的屏幕,在加上手机app很少支持横屏,所以iOS开发者基本不用怎么适配布局,所有的ui控件只要相对父控件布局就可以了,没错autoResizing就是一个相对于父控件的布局解决方法:注意:它只能相对父控件布局:***在xcode中可以通过可视化的界面调整也可以通过代码去控制 在用autoResizing的时候需要关闭autoLayout和sizeclas

IOS开发——UI基础-屏幕适配

一.适配 1.什么是适配?适应.兼容各种不同的情况 2.移动开发中,适配的常见种类 2.1系统适配 针对不同版本的操作系统进行适配 2.2屏幕适配 针对不同大小的屏幕尺寸进行适配 二.点和像素 1.在用户眼中屏幕是由无数个像素组成的像素越多,屏幕越清晰 2.在开发者眼中屏幕是由无数个点组成的,点又是由像素组成的像素越多,屏幕越清晰 三.Autoresizing简介 1.在Autolayout之前,有Autoresizing可以作屏幕适配,但局限性较大,有些任务根本无法完成相比之下,Autolay