IOS基础

来源:互联网 发布:微盘源码下载 编辑:程序博客网 时间:2024/05/16 11:48
1、修改UI大小
2、设置颜色
3、禁止横屏
4、点击空白处隐藏键盘
5、弹出键盘时,后面的UI整体上移
6、我的工具类[宏定义等]

1、修改UI大小可以通过frame或bounds属性来实现,但二者效果不同。

frame:

     修改大小后,原先的左上角的坐标不会改变,既以原来的左上角坐标位置保持不变为前提进行尺寸的改变。

bounds

      功能同frame,不同之处在于,以一身中点位置进行缩放。


修改位置的时候使用frame属性,它的坐标位置表示是的是一身在父空间种的坐标位置。

frame 修改下地址和尺寸
center 修改位置
bounds 只能修改尺寸,因为它的x,y一般为0

2、颜色设置:

指定RGB,参数是:红、绿、黄、透明度,范围是0-1

+ (UIColor *)colorWithRed:(CGFloat)redgreen:(CGFloat)greenblue:(CGFloat)bluealpha:(CGFloat)alpha;
指定HSB,参数是:色调(hue),饱和的(saturation),亮度(brightness)
+ (UIColor *)colorWithHue:(CGFloat)huesaturation:(CGFloat)saturationbrightness:(CGFloat)brightnessalpha:(CGFloat)alpha;

在自定义View的时候 设置蒙版的颜色可以这样弄,蒙版用一个UIImageView来做 kenshin笔记
当前的颜色改变透明度后的颜色:
UIColor *color = [UIColor redColor];UIColor *cl = [color colorWithAlphaComponent:0.5f];
自定义255的颜色值,将255转成0-1
CGFloatR  = (CGFloat) 225/255.0;CGFloatG = (CGFloat) 66/255.0;CGFloatB = (CGFloat) 88/255.0;CGFloat alpha = (CGFloat) 1.0;    UIColor *myColorRGB = [ UIColorcolorWithRed:Rgreen:Gblue:Balpha: alpha  ];self.tableView.backgroundColor = myColorRGB;

3.IOS禁止横屏

4.对键盘的隐藏——点击空白处隐藏、点击return键隐藏、

5.键盘出现时,后面的视图整体上移的方法



3.IOS禁止横屏(两种方式) 可以通过 cmd +右 方向键 在模拟器中测试
1:在AppDelegate中增加,这个方法可以禁止横屏

- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window  
    {  
         return UIInterfaceOrientationMaskPortrait;  
    }
2:修改xcode中的配置 如下图(只保留第一个选项勾选即可)

4.对键盘的隐藏——点击键盘return键隐藏键盘、点击空白处隐藏键盘、

点击键盘return键隐藏键盘
2.1在需要实现的控制器中实现代理<UITextFieldDelegate>
2.2需要使用该功能的UITextField处,委托代理。记住一定是要在实例化之前【这一步很重要】
2.3实现代理方法
#pragma mark TextField代理
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
    [textField resignFirstResponder];
    return YES;
}

点击空白处隐藏键盘、
#pragma mark view代理 点击空白区域是触发
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    //关闭键盘
    [self.username resignFirstResponder];
    [self.password resignFirstResponder];
}


5.键盘出现时,后面的视图整体上移的方法
- (void)viewDidLoad
{
    //[步骤1/3]获取键盘的监听广播
    [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(keyboardWillAppear2:) name:UIKeyboardWillShowNotification object:nil];
    [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(keyboardWillDisappear2:) name:UIKeyboardWillHideNotification object:nil];
}

#pragma mark 键盘 高度的计算
-(CGFloat)keyboardEndingFrameHeight:(NSDictionary *)userInfo//计算键盘的高度
{
//    传入的(NSDictionary *)userInfo用于存放键盘的各种信息,其中UIKeyboardFrameEndUserInfoKey对应的存放键盘的尺寸信息,以CGRect形式取出
    CGRect keyboardEndingUncorrectedFrame = [[userInfo objectForKey:UIKeyboardFrameEndUserInfoKey]CGRectValue];
    CGRect keyboardEndingFrame = [self.view convertRect:keyboardEndingUncorrectedFrame fromView:nil];
    return keyboardEndingFrame.size.height;
}
#pragma mark [步骤2/3]根据键盘高度将当前视图向上滚动同样高度。
-(void)keyboardWillAppear2:(NSNotification *)notification
{
    CGRect currentFrame = self.view.frame;
   
    if (currentFrame.origin.y < 0)//这里弥补了一个bug:当两个TextField来回切换的时候,软键盘一直都在,所以会重复调用keyboardWillAppear函数,从而导致currentFrame.origin.y = currentFrame.origin.y - keyBoardH * 0.4;执行,而此时的currentFrame只就累加了,所以必须清零
    {
        currentFrame.origin.y = 0;
        self.view.frame = currentFrame;
    }
   
    CGFloat keyBoardH = [self keyboardEndingFrameHeight:[notification userInfo]];
    currentFrame.origin.y = currentFrame.origin.y - keyBoardH * 0.4;
    self.view.frame = currentFrame;
}
#pragma mark [步骤3/3]当键盘消失后,视图需要恢复原状。
-(void)keyboardWillDisappear2:(NSNotification *)notification
{
    CGRect currentFrame = self.view.frame;
    CGFloat keyBoardH = [self keyboardEndingFrameHeight:[notification userInfo]];
    currentFrame.origin.y = currentFrame.origin.y + keyBoardH * 0.4;
    self.view.frame = currentFrame;
   
    //下面if语句的原理和keyboardWillAppear
    if (currentFrame.origin.y < 0)
    {
        currentFrame.origin.y = 0;
        self.view.frame = currentFrame;
    }

}

6、我的工具类[宏定义等]

////  Tools.m//  Device////  Created by kenshin on 15-9-9.//  Copyright (c) 2015年 kenshin. All rights reserved.//#import <Foundation/Foundation.h>#import <sqlite3.h>//获取手机屏幕的宽、高#define screenWidth [[UIScreen mainScreen] bounds].size.width#define screenHeight [[UIScreen mainScreen] bounds].size.height//字体颜色 为蓝色==帮助页面的背景色#define blueMyColor [UIColor colorWithRed:84.0/255 green:173.0/255 blue:235.0/255 alpha:1.0]#define colorMyButton [UIColor colorWithRed:0.0/255 green:122.0/255 blue:255.0/255 alpha:1.0]//参照IOS默认的Alert按钮颜色#define colorPageIn [UIColor colorWithRed:27.0/255 green:73.0/255 blue:97.0/255 alpha:1.0]//深#define colorPageCu [UIColor colorWithRed:120.0/255 green:180.0/255 blue:215.0/255 alpha:1.0]//浅#define colorTextBack [UIColor colorWithRed:214.0/255 green:214.0/255 blue:214.0/255 alpha:1.0]//浅灰色//全部按钮的背景#define imgBtnHighlighted [UIImage imageNamed:@"buddy_header_bg_highlighted"]//UI的圆角#define YUANJIAO 8//获取状态栏高度 貌似都使20#define statusHeight [[UIApplication sharedApplication] statusBarFrame].size.height//开关 字体大小#define switchFontSize [UIFont systemFontOfSize:14]#import "Tools.h"#import "sys/utsname.h"@implementation Tools- (void)intoFirtstVC{    self.window = [[UIWindow alloc]initWithFrame:[[UIScreen mainScreen] bounds]];    ViewController *rootController = [[ViewController alloc]init];    self.window.rootViewController = rootController;    self.window.backgroundColor = [UIColor whiteColor];    [self.window makeKeyAndVisible];}

//获取当前手机型号+ (NSString *)getCurrentDeviceModel{    struct utsname systemInfo;    uname(&systemInfo);    NSString *platform = [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding];            if ([platform isEqualToString:@"iPhone1,1"]) return @"iPhone 2G (A1203)";    if ([platform isEqualToString:@"iPhone1,2"]) return @"iPhone 3G (A1241/A1324)";    if ([platform isEqualToString:@"iPhone2,1"]) return @"iPhone 3GS (A1303/A1325)";    if ([platform isEqualToString:@"iPhone3,1"]) return @"iPhone 4 (A1332)";    if ([platform isEqualToString:@"iPhone3,2"]) return @"iPhone 4 (A1332)";    if ([platform isEqualToString:@"iPhone3,3"]) return @"iPhone 4 (A1349)";    if ([platform isEqualToString:@"iPhone4,1"]) return @"iPhone 4S (A1387/A1431)";    if ([platform isEqualToString:@"iPhone5,1"]) return @"iPhone 5 (A1428)";    if ([platform isEqualToString:@"iPhone5,2"]) return @"iPhone 5 (A1429/A1442)";    if ([platform isEqualToString:@"iPhone5,3"]) return @"iPhone 5c (A1456/A1532)";    if ([platform isEqualToString:@"iPhone5,4"]) return @"iPhone 5c (A1507/A1516/A1526/A1529)";    if ([platform isEqualToString:@"iPhone6,1"]) return @"iPhone 5s (A1453/A1533)";    if ([platform isEqualToString:@"iPhone6,2"]) return @"iPhone 5s (A1457/A1518/A1528/A1530)";    if ([platform isEqualToString:@"iPhone7,1"]) return @"iPhone 6 Plus (A1522/A1524)";    if ([platform isEqualToString:@"iPhone7,2"]) return @"iPhone 6 (A1549/A1586)";    if ([platform isEqualToString:@"iPhone8,1"]) return @"iPhone 6s Plus (A1522/A1524)";    if ([platform isEqualToString:@"iPhone8,2"]) return @"iPhone 6s (A1549/A1586)";        if ([platform isEqualToString:@"iPod1,1"])   return @"iPod Touch 1G (A1213)";    if ([platform isEqualToString:@"iPod2,1"])   return @"iPod Touch 2G (A1288)";    if ([platform isEqualToString:@"iPod3,1"])   return @"iPod Touch 3G (A1318)";    if ([platform isEqualToString:@"iPod4,1"])   return @"iPod Touch 4G (A1367)";    if ([platform isEqualToString:@"iPod5,1"])   return @"iPod Touch 5G (A1421/A1509)";        if ([platform isEqualToString:@"iPad1,1"])   return @"iPad 1G (A1219/A1337)";        if ([platform isEqualToString:@"iPad2,1"])   return @"iPad 2 (A1395)";    if ([platform isEqualToString:@"iPad2,2"])   return @"iPad 2 (A1396)";    if ([platform isEqualToString:@"iPad2,3"])   return @"iPad 2 (A1397)";    if ([platform isEqualToString:@"iPad2,4"])   return @"iPad 2 (A1395+New Chip)";    if ([platform isEqualToString:@"iPad2,5"])   return @"iPad Mini 1G (A1432)";    if ([platform isEqualToString:@"iPad2,6"])   return @"iPad Mini 1G (A1454)";    if ([platform isEqualToString:@"iPad2,7"])   return @"iPad Mini 1G (A1455)";        if ([platform isEqualToString:@"iPad3,1"])   return @"iPad 3 (A1416)";    if ([platform isEqualToString:@"iPad3,2"])   return @"iPad 3 (A1403)";    if ([platform isEqualToString:@"iPad3,3"])   return @"iPad 3 (A1430)";    if ([platform isEqualToString:@"iPad3,4"])   return @"iPad 4 (A1458)";    if ([platform isEqualToString:@"iPad3,5"])   return @"iPad 4 (A1459)";    if ([platform isEqualToString:@"iPad3,6"])   return @"iPad 4 (A1460)";        if ([platform isEqualToString:@"iPad4,1"])   return @"iPad Air (A1474)";    if ([platform isEqualToString:@"iPad4,2"])   return @"iPad Air (A1475)";    if ([platform isEqualToString:@"iPad4,3"])   return @"iPad Air (A1476)";    if ([platform isEqualToString:@"iPad4,4"])   return @"iPad Mini 2G (A1489)";    if ([platform isEqualToString:@"iPad4,5"])   return @"iPad Mini 2G (A1490)";    if ([platform isEqualToString:@"iPad4,6"])   return @"iPad Mini 2G (A1491)";        if ([platform isEqualToString:@"i386"])      return @"iPhone Simulator";    if ([platform isEqualToString:@"x86_64"])    return @"iPhone Simulator";    return platform;}@end

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 两个月不来月经了也没怀孕怎么办 婴儿不吃奶粉母乳又不够吃怎么办 怀孕39周了还没反应怎么办 脸过敏了又红又痒怎么办 刚开的淘宝店没生意怎么办 我22岁长得显老怎么办 卡的钱被qq转走怎么办 招行u盾密码忘了怎么办 孩子上五年级了成绩非常差怎么办 红米3s开不开机怎么办 皮肤被虫子咬了红肿痒怎么办 微信被骗了1万多怎么办 6个月宝宝吃了纸怎么办 农行k宝扣了50块怎么办 4g流量用的太快怎么办 怀疑老公有外遇最明智的怎么办 咽喉疼怎么办最简单的方法如下 生完孩子后腰疼的厉害怎么办 眼睛进东西了弄不出来怎么办 18k金不给换黄金怎么办 我22岁欠了10万怎么办 1岁宝宝又吐又拉怎么办 月经10天了还没干净怎么办 舌头有异味怎么办是有口臭吗 快8个月羊水破了怎么办 25岁欠了50万债怎么办 28岁血压高150低压110怎么办 苹果6的4g网络慢怎么办 一个月染了6次头怎么办 五0二干在衣服上怎么办 刚怀孕见红了肚子不痛怎么办 我有外遇了老婆不离婚怎么办 套了牙套的牙疼怎么办 我鼻子上有很多螨虫和黑头怎么办 鱼刺卡在喉咙怎么办最有效的办法 脚被蚊子咬了很痒怎么办 好压7z密码忘了怎么办 4g卡显示2g网络怎么办 过塑机把纸吞了怎么办 红米1s开不了机怎么办 跟老婆吵架闹的要离婚该怎么办