屏幕适配 和等比缩放

#import <UIKit/UIKit.h>

#define WIDTH self.view.frame.size.width

#define HEIGHT self.view.frame.size.height

@interface ViewController : UIViewController<UITextFieldDelegate>

@property(strong,nonatomic)UIImageView *imageV;

@property(strong,nonatomic)UITextField *txtID;

@property(strong,nonatomic)UITextField *txtmima;

@property(strong,nonatomic)UIButton *btnlogin;

@property(strong,nonatomic)UIButton *btnregister;

@property(strong,nonatomic)UILabel *label;

@property(strong,nonatomic)UIButton *btn1;

//

//  ViewController.m

//  屏幕适配

//

//  Created by tlh on 16/4/6.

//  Copyright © 2016年 lamco. All rights reserved.

//

#import "ViewController.h"

#import "UIViewExt.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {

[super viewDidLoad];

self.imageV=[[UIImageView alloc]initWithFrame:CGRectMake(0, 0, WIDTH, HEIGHT)];

self.imageV.image=[UIImage imageNamed:@"beijing.png"];

[self.view addSubview:self.imageV];

self.txtID=[[UITextField alloc]initWithFrame:CGRectMake(self.view.left+90, self.view.top + 150, WIDTH/2, HEIGHT/20)];

//    self.txtID.backgroundColor=[UIColor whiteColor];

//    self.txtID.borderStyle=0;

//    [email protected]"  请输入账号" ;

//    设置占位符及其字体颜色

self.txtID.delegate=self;

UIColor *color1=[UIColor colorWithWhite:1.0 alpha:0.5];

self.txtID.attributedPlaceholder=[[NSAttributedString alloc]initWithString:@"请输入账号" attributes:@{NSForegroundColorAttributeName:color1}];

UIImageView *imagev=[[UIImageView alloc]initWithImage:[UIImage imageNamed:@"[email protected]"]];

self.txtID.clearButtonMode=YES;

self.txtID.leftView=imagev;

self.txtID.leftViewMode=UITextFieldViewModeAlways;

self.label=[[UILabel alloc]initWithFrame:CGRectMake(self.view.left+90, self.txtID.bottom, WIDTH/2, 1.0)];

self.label.backgroundColor=[UIColor whiteColor];

[self.view addSubview: self.label];

[self.view addSubview:self.txtID];

self.txtmima=[[UITextField alloc]initWithFrame:CGRectMake(self.view.left+90, self.txtID.bottom+20, WIDTH/2, HEIGHT/20)];

//    [email protected]"  请输入密码";

self.txtmima.delegate=self;

UIColor *color=[UIColor colorWithWhite:1 alpha:0.5];

self.txtmima.attributedPlaceholder=[[NSAttributedString alloc]initWithString:@"请输入密码" attributes:@{NSForegroundColorAttributeName:color}];

self.txtmima.secureTextEntry=YES;

UIImageView *imagev1=[[UIImageView alloc]initWithImage:[UIImage imageNamed:@"[email protected]"]];

self.txtmima.leftView=imagev1;

self.txtmima.leftViewMode=UITextFieldViewModeAlways;

UILabel *lbl=[[UILabel alloc]initWithFrame:CGRectMake(self.view.left+90, self.txtmima.bottom, WIDTH/2, 1.0)];

lbl.backgroundColor=[UIColor whiteColor];

[self.view addSubview:lbl];

[self.view addSubview:self.txtmima];

//    使密码可见

self.btn1=[UIButton buttonWithType:UIButtonTypeRoundedRect];

[self.btn1 setBackgroundImage:[UIImage imageNamed:@"[email protected]"] forState:UIControlStateNormal];

[self .btn1 addTarget:self action:@selector(display) forControlEvents:UIControlEventTouchUpInside];

self.btn1.frame=CGRectMake(0, 0, self.txtmima.width/12, self.txtmima.size.height);

self.txtmima.rightView=self.btn1 ;

self.txtmima.rightViewMode= UITextFieldViewModeAlways;

//    [self.txtmima addSubview:self.btn1];

//    登陆按钮

self.btnlogin=[UIButton buttonWithType:UIButtonTypeRoundedRect];

self.btnlogin.frame=CGRectMake(self.view.left+90, self.txtmima.bottom+50, WIDTH/2+imagev.size.width, HEIGHT/19);

[self.btnlogin setBackgroundImage:[UIImage imageNamed:@"[email protected]"] forState:UIControlStateNormal];

[self.btnlogin setTitle:@"登陆" forState:UIControlStateNormal];

[self.btnlogin setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];

[self.view addSubview:self.btnlogin];

//     注册按钮

self.btnregister=[UIButton buttonWithType:UIButtonTypeRoundedRect];

self.btnregister.frame=CGRectMake(self.view.left+90, self.btnlogin.bottom+20, WIDTH/2+imagev.size.width, HEIGHT/19);

[self.btnregister setBackgroundImage:[UIImage imageNamed:@"[email protected]"] forState:UIControlStateNormal];

[self.btnregister setTitle:@"注册" forState:UIControlStateNormal];

[self.btnregister setTitleColor:[UIColor greenColor] forState:UIControlStateNormal];

[self.view addSubview:self.btnregister];

//    welcome 图片

UIImageView *imagev2=[[UIImageView alloc]initWithImage:[UIImage imageNamed:@"[email protected]"]];

imagev2.frame=CGRectMake(self.view.left+90, self.view.top+70, WIDTH/2, HEIGHT/19);

[self.view addSubview:imagev2];

//   logo图片

UIImageView *imagev3=[[UIImageView alloc]initWithImage:[UIImage imageNamed:@"[email protected]"]];

imagev3.frame=CGRectMake(self.view.left+WIDTH/2-50, self.view.bottom-100, WIDTH/4, HEIGHT/18);

[self.view addSubview:imagev3];

//    self.btnlogin=[UIButton buttonWithType:UIButtonTypeRoundedRect];

//    self.btnlogin.frame=CGRectMake(self.view.left+50, self.txtmima.bottom+50, WIDTH/3, HEIGHT/7);

//

}

//键盘

-(BOOL)textFieldShouldReturn:(UITextField *)textField

{

[self.txtID resignFirstResponder];

[self.txtmima resignFirstResponder];

return YES;

}

-(void)display

{

if (self.txtmima.secureTextEntry==NO) {

[self.btn1 setBackgroundImage:[UIImage imageNamed:@"[email protected]"] forState:UIControlStateNormal];

self.txtmima.secureTextEntry=YES;

}

else

{

[self.btn1 setBackgroundImage:[UIImage imageNamed:@"[email protected]" ] forState:UIControlStateNormal];

self.txtmima.secureTextEntry=NO;

}

}

@property(strong,nonatomic)UITextField *txtName;

//  ViewController.m

//  等比缩放

//

//  Created by tlh on 16/4/6.

//  Copyright © 2016年 lamco. All rights reserved.

//

#import "ViewController.h"

#import "AppDelegate.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {

[super viewDidLoad];

self.txtName=[[UITextField alloc]initWithFrame:CGRectMake1(50, 100, 200, 55)];

self.txtName.backgroundColor=[UIColor redColor];

self.txtName.borderStyle=1;

[self.view addSubview:self.txtName];

}

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-10-07 15:29:44

屏幕适配 和等比缩放的相关文章

转: 安卓自动缩放布局,解决屏幕适配问题

转:http://blog.csdn.net/ljh102/article/details/45536293 2015.8.4 更新: 增加参数custom:autoScaleType 设置缩放模式,可以设为“fitWidth”,"fitHeigth" 和 "fitInside".分别代表缩放至宽度匹配,缩放至高度匹配以及缩放至适合容器内部,默认为"fitInside". 做过安卓开发的都知道,屏幕适配是一件非常困难的事情. Google官方的解

iOS里面的屏幕适配(两种方法)

第一种方法:进行等比缩放 适用于只有单个或者很少的页面需要适配的时候 第二种方法:用别人已经封装的类,进行屏幕的适配 适用于多个页面都需要进行屏幕适配 这是在ViewController.m里面的代码

[转]再谈移动端Web屏幕适配

一个多月前水了一篇移动web屏幕适配方案,当时噼里啪啦的写了一通,自我感觉甚是良好.不过最近又有一些新的想法,和之前的有一些不同. 先说一下淘宝的方案,感觉现在好多的适配方案都是受了它的影响,上周六看了winter在一个会议的分享,讲到了这个方案.现在你谷歌一下移动web适配,绝对可以看到很多类似的,切活动页的童鞋都忍不住试一把.这些方案和我的博客写的其实还是相似的,就是抛弃了那种viewport直接缩放,然后给定html的初始font-size值,使用rem这个单位. 在屏幕的设备像素比上,也

android屏幕适配详解

android屏幕适配详解 官方地址:http://developer.android.com/guide/practices/screens_support.html 一.关于布局适配建议 1.不要使用绝对布局 2.尽量使用match_parent 而不是fill_parent . 3.能够使用权重的地方尽量使用权重(android:layout_weight) 4.如果是纯色背景,尽量使用android的shape 自定义. 5.如果需要在特定分辨率下适配,可以在res目录上新建layout

Unity2D多分辨率屏幕适配方案(转载)

一下内容转自:http://imgtec.eetrend.com/forum/3992 此文将阐述一种简单有效的Unity2D多分辨率屏幕适配方案,该方案适用于基于原生开发的Unity2D游戏,即没有使用第三方2D插件,如Uni2D,2D toolkit等开发的游戏,NGUI插件不受这个方案影响,可以完美和此方案配合使用. 先说明一些基本的概念: 1.屏幕的宽高比Aspect Ratio = 屏幕宽度/屏幕高度 2.Unity2D中摄像机镜头的尺寸决定了我们实际看到游戏内容的多少,在编辑器中我们

使用cocos2dx 3.2和cocosstudio做屏幕适配----有图才有真想!

屏幕适配的文章太多了,基本上都是理论性的东西,大家明白了机制就知道了,没有完美的适配方案,除非你们的美工愿意折腾. 常规策略: 今天研究了一下屏幕适配导致的缩放和展示不全的问题(黑边的方案直接淘汰).细想一下,美工给我们一张图(假设这张图width足够长),在不同的分辨率上我们应该如何对其展示?肯定不可能在所有的分辨率上把这张图完美的按照原比例展示出来,那答案就只有两种了: 1.铺满屏幕(长宽非等比缩放 EXACTFIT) 天天德州就采用了这种方法,在不同的分辨率上能明显看到元素被缩放或者拉伸了

Android屏幕适配原理

大纲 1.android中res目录下的文件夹所对应屏幕尺寸 2.用dp表示尺寸的原理 3.对于720p尺寸的适配需要注意什么 4.ui切图按什么尺寸给最好 参考:http://www.360doc.com/content/12/0301/17/5087210_190881395.shtml 几个概念: 1) 屏幕密度(dpi) :dot per inch,即每英寸像素数. ldpi(120),mdpi(160),hdpi(240),xhdpi(320) 计算方法: 以480x854,4.0in

Android屏幕适配解决方案

1.概述 Android碎片化问题是每个开发者心中的噩梦,本文就Android适配问题进行了全面的总结. 首先看下谷歌官方2016 年 8 月 1 日发布的报告: Android 平台版本的相对数量设备的相关数据: 可以看出4.1版本及以上占有量达到96%,所以适配优先考虑4.1以上的版本适配问题. 特定屏幕配置的设备的数据,屏幕配置由屏幕尺寸和密度定义: 从统计数据可以看出,hdpi.xhdpi和xxhdpi的占有率达到95%. 详细统计数据看这里: https://developer.and

CSS基础教程 -- 媒体查询屏幕适配

响应式布局 Media Query 的使用方法 在上例中, 我们使用Media Queries来根据3种不同尺寸的窗口使用3种不同的样式.通过不同的媒体类型和条件定义样式表规则,媒体查询让CSS可以更精确作用于不同的媒体类型和同一媒体的不同条件.媒体查询的大部分媒体特性都接受min和max用于表达"大于或等于"和"小与或等于".如:width会有min-width和max-width媒体查询可以被用在CSS中的@media和@import规则上,也可以被用在HTML