项目搭建

项目搭建第一步:

工程名称,公司名称,公司标识(com.baidu),生成唯一标识符,

抽开iPhone和iPad.

3个都是单元测试,国内不不选择,国外比较普遍。

A-General

Bundle Identifier:项目的唯一标识必须写,作用:1.上传APP到APPSTORE,2.做推送的时候。

原理:根据唯一标识符推送内容到手机和应用。

Version:1.0.迭代:1.1

Build:编译版本,没有用

Team:做真机调试的。拿好设备。带回家。

Deployment Target:  支持哪个版本以上。iphone的iOS系统的版本,表示应用只支持9.0以上。

选择8.0以上。或者7.0以上。

如果6.0以上,就不要做了,6.0的应用活不了多久了。大部分都已经升级了。

而且6.0很麻烦。

Main Interface: Main,从storyBoard加载

Status Bar Style :程序启动的状态栏,程序启动结束就没有用了。

 Default黑色的状态栏

 Light白色的状态栏。

一般开发中都给它隐藏。为了看全屏,就给它隐藏。

如果动画很快,你想看。就调 Debug ShowAnimation:动画就可以很慢很慢

Embedded Binaries .a

Linked Frameworks and Libraries  frameworks

静态库。第三方库

打包成静态库,就看不到文件内容了。只能看到.h。看不到源码。

APP的名字:Info.plist.  Bundle name中文名字。就是APP command+shift+H显示的名字

项目的名字的名称:带有中文的名字不行的。。。解码有乱码。

AppIcon Icon项目图标:直接全选,拖进去就可以。

AppIcon Icon启动图片:

AppIcon Icons and Launch Images 

App Icons Source :AppIcon Icon项目图标:直接全选,拖进去就可以。

Launch Images Source:点击use Asset Catalog。多个箭头,显示的Brand Assets箭头,直接全选,拖进去就可以。

因为

Launch Screen File :LaunchScreeen优先级比Launch Images的高。

所以两个都设置的时候,就走的是Launch Screen 。

如果你要走launch Images就把Launch Screen删掉。

如果xcode设置了不起作用。原因:1. Xcode缓存的问题,command+shift+K.    2.可能是因为安装了,都已经设置了。删除程序。重新运行。就可以了。

如果通过LaunchImage设置启动界面,那么屏幕的可视范围由图片决定。

没有图片5的话,上面有个条,下面有个条。尺寸编程320和480

注意点:如果你使用了LaunchImage,你必须让美工提供各种尺寸的图片。

LaunchScreen:Xcode6开始才有

好处:自动识别当前真机和模拟器的尺寸。

比如说LaunchScreen  Use Asset Catalog

LauchScreenstoryboard.拖个ImageView

距离边界0,设置个图片。让美工提供一个可以拉伸的图片。

好处:可以展示任何东西。

推荐用LauchScreen.

底层实现:把LaunchScreen截屏。生成一张图片。

如何把LaunchScreen还原回到LaunchImage.

把LaunchScreen删掉。然后,把LaunchImage生成一个新的。把老的LaunchImage和LaunchScreen删掉就可以了

**********************************

项目架构,结构搭建

UI层

数据层

请求层

程序启动原理

Main——uiapplicationMain: 1

1.创建uiapplication。打开网页,发短信。打电话。.设置应用程序的提醒数字。.设置联网状态。设置状态栏。

2.创建appdelegate代理对象。监听整个app生命周期。处理内存警告。

3.开启主运行循环。保证程序一直运行。runloop:主线程有个runloop自动开启。每一个线程都有runloop

4.加载info.plist.判断是否指定了main.storyboard.如果指定了,就会去加载main.storyboard.加载会做几件事情。创建窗口。设置窗口跟控制器。显示窗口。

5.程序启动的时候调用didFinishLaunchingWithOptions:

Class-A-M,V,C

复制A。

tabbarcontroller会把第0个控制器的view添加进去。

设置tabbar按钮的内容 由对应子控制器的tabBarItem的属性决定。

设置navigation的内容,由栈顶控制器决定。

tabbarItem的子控制器是导航控制器。nav,nav1,publishVc,nav3,nav4

设置tabBar上按钮内容:由对应的子控制器的tabBarItem属性

0:nav.tabBarItem.title = @“精华”;

    nav.tabBarItem.imge =[uiimage imageName:@“”];

   nav.tabBarItem.selectedImage =[uiimge imageName:@“”];

选中图片被渲染:默认iOS7以后默认tabbar上的图片都会被渲染。 倒三角=Rander As.  点击图片文件夹。全选择图片。然后点击倒三角===Rander As

Orange. Image一起设置

[Image imgeWithRenderingMode:UIImageRenderingModeAlways]

返回一个没有渲染的图片

抽出来一个uiimage的分类。快速创建一个没有渲染的图片。

Category

为了提示image的Name 改插件。如何去查找插件。插件有个地方指定安装到什么地方。

打开插件。搜索plug.Plug插件的意思。

插件安装什么地方。一般做xcode的配置。找有没有做配置。install path

Build Settings Installation Directory.    /Library

桌面-option-前往资源库

LolcalLized本地化翻译。如果没有本地化。就copy这个文件。

就会变成中文。资源库就是Library.

资源库-D-Xcode-Plugins-显示包内容-resource-Completions.plist

plist编辑状态:plist保存才行。编译一下

选中标题颜色:应该是黑色的

选中标题的字体非常大。

发布按钮显示不出来

封装:谁的事情谁管理,方便以后去维护代码

自定义类:管理自己的业务

/********************************************************************************************************/

项目搭建第二部

********************关于tabbar的自定义*******************

调整按钮的位置,在layoutsubview里面调整。

控件的center不能等于self.center.要用self.bounds.size.width和self.bounds.size.height

在layoutSubviews里面修改布局。这个方法的调用频率比较高。

添加一次就想到懒加载,懒加载在里面一定要写self addsubview,加到上面,就会有个强引用。不能会没有。

按钮设置背景图片setBackgroundImage。

按钮的尺寸没有,可以button sizeToFit. 会根据按钮的图片或者文字的内容自适应,就不用设置尺寸了。

iskindOfClass

NSClassFromString(@“”)反编译

tabBar有个item这个属性,记录有多少个按钮

tabBar.item.count


/******************************************************************************************************/

常见的xib连线的问题:

1.如果不是和vc.h.m一起create的xib,写init的时候,通常会报错。因为会调用initWithNibName方法会判断,有没有指定nibName,然后判断有没有跟我的类名同名的xib。解决办法是,file owner指定控制器,flie owner的view连线到xib的view

/**************************************************************************************/

屏幕高度,6p:736,   6:568,   5:568,   4:480

/***************************************************************************************/

CocoaPods 使用:

1.插件使用位置,product - CocoaPods - Create/Edit Podfile

2.命令行

(1)cd 工程文件-----  cd  文件夹----touch  podfile ------打开open podfile------搜索需要导入的框架的描述 pod search,复制到podflid里面,然后安装第三方框架 

 pod install - help  

pod - help

 查到命令no-repo-update

pod install --no-repo-update:跳过第三方仓库的更新索引,一个月pod repo的一次就可以了。

pod install:安装的依赖的第三方,根据podfile.lock安装。第一次会根据podfile文件加载。

(podfile.lock第一次pod的时候就会自动生成文件。用来描述当前导入框架的版本号)

pod update:查看导入的框架有没有新的版本,如果有新的版本就会去加载,并且更新pod.lock。

pod repo:管理第三方仓库的索引,去寻找框架有没有最新的版本,有就记录。

以后只能去用xcworkspace 去打开。


/***************************************************************************************/

调用接口的时候,响应头的原因:content-type.

/**************************************控制器,View*************************************************/



控制器,View

一、

1.1  xib必须要重新设置控件的frame.

1.2。ViewDidLayoutSubViews{

[super …]

因为会调用多次,所以不能创建控件

因为会根据布局创建frame,所以必须在这里设置frame,在viewDidLoad里面是没有效果的。

设置frame

}

1.3    viewDidLoad{

[super ….];

创建控件

}

二、变更view的时候,一定要调用这个方法layoutIfNeeded

[UIView animateWithDuration:0.3 animations:^{

[self.view layoutIfNeeded];

}];

三、resizableImageWithCapInSets:

Image …… 拉伸处理,说明图片要保护的区域

四:改变约束的是constant这个属性。

/**************************************控制器,View*************************************************/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容