IOS客户端Coding项目记录(一)

1:UITextField设置出现清除按键

self.textField.clearButtonMode = UITextFieldViewModeWhileEditing;

说明:

UITextField.clearButtonMode:清空输入的字符,有以下几种模式
UITextFieldViewModeAlways,不为空,获得焦点与没有获得焦点都显示清空按钮
UITextFieldViewModeNever,不显示清空按钮
UITextFieldViewModeWhileEditing,不为空,且在编辑状态时(及获得焦点)显示清空按钮
UITextFieldViewModeUnlessEditing, 不为空,且不在编译状态时(焦点不在输入框上)显示清空按钮

扩展:关于键盘类型(UITextField.keyboardType),UITextField.enablesReturnKeyAutomatically = YES当UITextField不为空时高亮,[UITextField ResignFirstResponder]关闭键盘

2:绘画一条下划线

通过一个视图,定义其位置跟背景就可以,下面代码仅供参考
         self.backgroundView = nil;
         self.backgroundColor = [UIColor clearColor];
         UIView* _lineView = [[UIView alloc] initWithFrame:CGRectMake(kInput_OnlyText_Cell_LeftPading, 43.5, kScreen_Width-2*kInput_OnlyText_Cell_LeftPading, 0.5)];
        _lineView.backgroundColor = [UIColor colorWithHexString:@"0xaebdc9"];
        [self.contentView addSubview:_lineView];

3:表格一些设置

   self.myTableView.separatorStyle = UITableViewCellSeparatorStyleNone;//不加换行线
    self.myTableView.backgroundColor = [UIColor colorWithHexString:@"0xfafafa"];
    UIView *upBgView = [[UIView alloc] initWithFrame:self.view.bounds];
    upBgView.backgroundColor =[UIColor colorWithHexString:@"0x29333f"];
    [upBgView setY:-CGRectGetHeight(upBgView.bounds)];
    [self.myTableView addSubview:upBgView];

    self.myTableView.contentInset = UIEdgeInsetsMake(-kHigher_iOS_6_1_DIS(20), 0, 0, 0);//缩进
    self.myTableView.tableFooterView=[self customFooterView];//方法 返回view,看第五点
    self.myTableView.tableHeaderView = [self customHeaderView];

扩展:

UITableViewCellSelectionStyle选择行的样式UITableViewCellSelectionStyleNone,UITableViewCellSelectionStyleBlue,UITableViewCellSelectionStyleGray
如果要自定义cell的背景色
cell.selectedBackgroundView = [[[UIView alloc] initWithFrame:cell.frame]];
cell.selectedBackgroundView.backgroundColor = [UIColor redColor];

改变换行线颜色 tableView.separatorColor = [UIColor blueColor];

4:可以定义表头跟底部视图(代码接上面)

- (UIView *)customHeaderView{
    UIView *headerV = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreen_Width, 180)];
    UIImageView *loginLogo = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"login_logo"]];
    CGFloat loginLogoHeight = CGRectGetHeight(loginLogo.bounds)*kScreen_Width/CGRectGetWidth(loginLogo.bounds);
    if (loginLogoHeight > 180) {
        [headerV setHeight:loginLogoHeight];
    }
    loginLogo.frame = CGRectMake(0, 0, kScreen_Width, loginLogoHeight);
    [headerV addSubview:loginLogo];

    return headerV;
}
- (UIView *)customFooterView{
    UIView *footerV = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreen_Width, 100)];
    _loginBtn = [UIButton buttonWithStyle:StrapSuccessStyle andTitle:@"登录" andFrame:CGRectMake(18, kScreen_Width > 320? 20: 20, kScreen_Width-18*2, 45) target:self action:@selector(sendLogin)];
    [footerV addSubview:_loginBtn];
    return footerV;
}

5:隐藏本页的导航栏

- (void)viewDidLoad
{
    [super viewDidLoad];
    [self.navigationController setNavigationBarHidden:YES];

}

6:UIEdgeInsets

typedef struct {
    CGFloat top, left, bottom, right;
} UIEdgeInsets;

主要是理解下UIEdgeInsets在IOS UI里的意义.
UIEdgeInsets==>这货其实就是插入间隔区域。正值表示间隔值,负值表示超出参照物的距离。

7:活动指示器UIActivityIndicatorView

可以告知用户有一个操作正在进行中。派生自UIView,所以他是视图,也可以附着在视图上。
UIActivityIndicatorView* activityIndicatorView = [ [ UIActivityIndicatorView alloc ]?initWithFrame:CGRectMake(250.0,20.0,30.0,30.0)];
设置风格:
activityIndicatorView.activityIndicatorViewStyle= UIActivityIndicatorViewStyleGray;
UIActivityIndicatorViewStyleWhiteLarge 大型白色指示器
UIActivityIndicatorViewStyleWhite 标准尺寸白色指示器
UIActivityIndicatorViewStyleGray 灰色指示器,用于白色背景
如果希望指示器停止后自动隐藏,那么要设置hidesWhenStoped属性为YES。默认是YES。设置为NO停止后指示器仍会显示。activityIndicatorView.hidesWhenStoped = NO;
显示:可以将它附着在任何视图上,比如表格单元、或者视图,[ self.view addSubview:activityIndicatorView ]

启动和停止
[ activityIndicatorView startAnimating ];//启动
[ activityIndicatorView stopAnimating ];//停止

判断是否处于运动状态isAnimating
[activityIndicatorView isAnimating]

下面为一段实例代码
_activityIndicator = [[UIActivityIndicatorView alloc]
                                 initWithActivityIndicatorStyle:
                                 UIActivityIndicatorViewStyleGray];
            CGSize captchaViewSize = _captchaView.bounds.size;
            _activityIndicator.hidesWhenStopped = YES;
            [_activityIndicator setCenter:CGPointMake(captchaViewSize.width/2, captchaViewSize.height/2)];
            [_captchaView addSubview:_activityIndicator];

8:使用NSUserDefaults保存用户名和密码

创建一个user defaults方法有多个,最简单得快速创建方法:
NSUserDefaults *accountDefaults = [NSUserDefaults standardUserDefaults];

添加数据到 user defaults:
[accountDefaults setObject:nameField.text forKey:UserDefaultNameKey];

也可以添加基本数据类型int, float, bool等,有相应得方法
[accountDefaults setBool:YES forKey:UserDefaultBoolKey];

从user defaults中获取数据:
[accountDefaults objectForKey:NCUserDefaultNameKey]  
[accountDefaults boolForKey: UserDefaultBoolKey];

注意:UserDefaults不是立即写入,而是根据时间戳定时的把缓存中的数据写入本地磁盘。所以调用了set方法之后数据有可能还没有写入磁盘应用程序就终止了。可以通过调用synchornize方法强制写入。[[NSUserDefaults standardUserDefaults] synchronize]; 

代码片段:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
        [defaults setObject:[NSNumber numberWithBool:YES] forKey:kLoginStatus];
        [defaults setObject:loginData forKey:kLoginUserDict];
        [defaults synchronize];
时间: 2024-10-05 04:45:13

IOS客户端Coding项目记录(一)的相关文章

IOS客户端Coding项目记录(四)

1:打开Xcode,然后闪退,报加载某库出现异常 如/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/libclang.dylib 这个是Xcode的bug,我的情况是打开某个项目会出现这个问题 解决办法:这还是缓存问题,详见第五点(5.XCode5由于缓存问题引起了很多奇怪的问题,所以清除缓存有时会起到大作用:),清除缓存再运行,一切正常. 进入步骤,按option键进入

IOS客户端Coding项目记录(五)

1:统一修改导航栏的样式,在 AppDelegate.m中 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; // Override point for customiz

IOS客户端Coding项目记录(二)

9:第三方插件整理 JSON转实体:jsonModel https://github.com/icanzilb/JSONModel/ 美化按键:BButton https://github.com/mattlawer/BButton 状态栏提示:JDStatusBarNotification https://github.com/jaydee3/JDStatusBarNotification 照片显示插件:MJPhotoBrowser https://github.com/azxfire/MJP

IOS客户端Coding项目记录(三)

18:图片视图几种填充样式 _imgView.contentMode = UIViewContentModeScaleAspectFill; 如下: typedef NS_ENUM(NSInteger, UIViewContentMode) { UIViewContentModeScaleToFill, UIViewContentModeScaleAspectFit, UIViewContentModeScaleAspectFill, UIViewContentModeRedraw, // re

ios客户端暑期“动画屋“活动项目总结

    入职实习的这个公司,第一天就分配了任务,从零开始写一个网页,之前虽然了解一些前端知识,但从头开写还是遇到了很多问题,互联网公司讲求效率,有deadline还是比较有紧迫感的,与在实验室放羊状态有了鲜明的对比.mentor.产品经理.组里的boss.实习生同事都给我提供了非常多的帮助.此篇总结为独立完成的第一个项目的项目总结.下图是已上线活动界面效果. 项目介绍 (一).爱奇艺IOS客户端发现-活动页面中"动画屋"活动开始页面的开发     活动开始页面的开发主要需求是:    

ios客户端发现_动画屋后期页面重构与悬浮评论分享模块开发项目总结

从"看世界杯送流量"项目,遇到响应式布局问题之后,专门钻研了这方面专业的书籍,同时阅读了相关文章.响应式布局简单的说就是使开发的页面在不同设备上都有友好的效果.而最开始"暑期动画屋"的项目,当时并没有采用响应式布局,虽然ipad上可用,其他设备则会有显示问题.这也暴露了,目前所在移动业务事业部前端的问题:    1.考虑到响应式布局在不同设备上,UI设计师只给了一套UI原型图,而在不同设备上的显示只是根据前端工程师的理解或个人偏好来完成布局.从产品经理的角度以及测试

ios客户端发现_世界杯送流量活动项目总结

   世界杯如火如荼的进行,视频网站类似于门户网站,需要快速根据外部环境更新内容.产品经理需要策划活动,并安排实施.这个活动就是在这样背景下产生的,爱奇艺与运营商合作,实现双赢.爱奇艺可以通过运营商向海量用户发送短信的方式,提高用户数,运营商通过爱奇艺视频平台给用户更多种多样的福利,提高用户黏性.   总的来说:运营商有用户,视频网站有内容.用户需要内容,有内容的需要用户,有用户的需要满足用户内容的需求.两者优点突出.需求明显合作水到渠成.另外爱奇艺将运营商作为大客户管理,保证了协同作战的机动性

搭建基于asp.net的wcf服务,ios客户端调用的实现记录

一.写wcf 问题: 1.特定的格式 2.数据绑定 3.加密解密 二.发布到iis 问题: 1.访问权限问题,添加everyone权限 访问网站时:http://localhost/WebbUploadSample/ZipUpload.aspx “/WebbUploadSample”应用程序中的服务器错误. -------------------------------------------------------------------------------- 访问被拒绝. 说明: 访问服

仿新浪微博IOS客户端(v5.2.8)——搭建项目基本框架

转载请标明出处:http://blog.csdn.net/android_ls/article/details/45827719 声明:仿新浪微博项目,所用所有图片资源都来源于官方新浪微博IOS客户端,编写本应用的目的在于学习交流,如涉及侵权请告知,我会及时换掉用到的相关图片. 最近我打算利用业余时间,仿下新浪微博IOS客户端,至于能写到哪里我也不确定,能写多少就写多少吧,下面我们开始项目的基本搭建: 1.打开Xcode选择创建新项目,并创建各个模块的目录结构,完成后项目的目录结构如下图: 2.