iOS 中 UIControllerView 加载之后,将其中的 UITableView 滑到最底部以及遇到的问题

发布时间:2022-11-19 IOS SWIFT 开发 SWIFT IOS

项目中,需要在进入 UIViewController 后对它里面的 UITableView 滑动到最底部,那么需要把代码写在 viewDidLoad 中。

下面这一行代码要使得 previewTable 这个UITableView 滑动到最底部的位置。(home.tickTasks 是我对代码中这个 tableView 的数据源,可根据实际需要设置)


self.previewTable.scrollToRow(at: IndexPath.init(row: (Home.tickTasks.count - 1), section: 0), at: .bottom, animated: false)

但是,不管是否需要动画,以上代码总是不能准确地滑动到指定位置,滑动的动作需要一点点时间。

以下使用同步机制来等待一小段时间。

DispatchQueue.main.asyncAfter(deadline: .now() + 0.01) {
            self.previewTable.scrollToRow(at: IndexPath.init(row: (Home.tickTasks.count - 1), section: 0), at: .bottom, animated: false)
        }

猜想,是因为代码控制对 tableView 的滑动需要在 tableView 初始化好并且把 cell 的数据加载进来之后,如下代码,若这样写,则会出现 tableView 划不到最底部的情况。

override func viewDidLoad() {
        super.viewDidLoad()
        
        bindTableView()    // 配置 tableView 的 dataSource、delegate 等信息
       
        loadFromCoreData() // 加载数据到 tableViewCell 中
        
        self.previewTable.scrollToRow(at: IndexPath.init(row: (Home.tickTasks.count - 1), section: 0), at: .bottom, animated: false)
        // 此时存在数据未加载完成但滑动动作异步执行,所以未滑到最底部,滑动就被终止了。
    }

问题出在于未加载完成就进行界面的滑动,所以我们让对界面滑动稍微延迟 0.01 秒,如下代码所示

override func viewDidLoad() {
        super.viewDidLoad()
        bindTableView()
     
        loadFromCoreData()
        
        DispatchQueue.main.asyncAfter(deadline: .now() + 0.01) {
            self.previewTable.scrollToRow(at: IndexPath.init(row: (Home.tickTasks.count - 1), section: 0), at: .bottom, animated: false)
        } 
    }

此时就可以滑动到最底部了,但还有一个小问题,上面的 row 为 Home.tickTasks.count - 1,当 count 为 0 时程序会闪退,因为 index 越界了,所以像下面一样预先判断 count 即可解决问题。

override func viewDidLoad() {
        super.viewDidLoad()
        bindTableView()
        
        loadFromCoreData()
        
        DispatchQueue.main.asyncAfter(deadline: .now() + 0.01) {
            if Home.tickTasks.count > 0 {
                self.previewTable.scrollToRow(at: IndexPath.init(row: (Home.tickTasks.count - 1), section: 0), at: .bottom, animated: false)
            }
        }
    }

更多相关推荐


IOS 多线程 RUNLOOP 机制 (二)

发布时间:2015-07-11 多线程 RUNLOOP IOS
二,何时使用RunLoop对于辅助线程,在需要和线程有更多交互时,才使用RunLoop。比如:1)使用端口或者自定义输入源来和其他线程通讯2)使用线程定时器3)Cocoa中使用任何performSelector...的方法(参考Table:Performingselectorsonotherthreads)4)使线程周期性工作三,如何使用RunLoop对象RunLoop对象提供了添加输入源,定时器...

App Languages 批量化导入管理iOS多语言文案

  自己最近开发了一款软件Applanguages可以实现可视化的形式管理iOS、mac多语言文案,支持批量导入、批量删除、批量替换、批量导出以及导入前本地多语言文案,待导入多语言文案的异常检测。具体界面如下:软件界面批量导入1)需要选择xcodeproj文件的路径,方便创建和寻找本地的多语言文件2)需要选择待导入excel文件的路径,其中待导入excel文件的格式如下:备注:key是多语言的ke...

Swift简明教程(四)类与对象

发布时间:2014-06-04 SWIFT IOS
Swift简明教程(四)类与对象Swift中使用class关键字定义类。类里面属性的声明与定义变量和常量差不多,而成员方法也与普通函数的写法一样,只是写在类里面。
classShape{varnumberOfSides=0funcsimpleDescription()->String{return"Ashapewith\(numberOfSides)sides."}}试验给上面的类用...

iOS开发——密码存储之keychain的使用

发布时间:2015-05-12 IOS
iOS的keychain服务提供了一种安全的保存私密信息(密码,序列号,证书等)的方式。每个ios程序都有一个独立的keychain存储。从ios3.0开始,跨程序分享keychain变得可行。下面就使用keychain来实现存取用户名和密码。苹果已经有现成的类封装好了keychain,KeychainItemWrapper.h和KeychainItemWrapper.m文件,可以在Generic...

iOS 开发者们,请尽量不要在夏季开发应用!

发布时间:2012-10-16 IOS
本文转载自:雷锋网http://www.leiphone.com/【编者按】本文作者系上海同广文化传播有限公司CEO:张筱帆。下文是他的经验之谈,供大家借鉴。从近期我自己以及我周围的开发者朋友身上发生的各种悲剧来看,我得出一个结论,作为iOS开发者,请尽量不要在夏季(6、7、8月份)的时候启动一个iOS项目。一个iOS应用的开发周期一般在两三个月左右,如果你是在夏季启动一个项目,那么很有可能,你的...

iOS里的MVC

发布时间:2013-01-17 MVC 设计模式 XCODE IOS
我们今天谈谈cocoa程序设计中的 模型-视图-控制器(MVC)范型。我们将从两大方面来讨论MVC:什么是MVC?M、V、C之间的交流方式是什么样子的?理解了MVC的概念,对cocoa程序开发是至关重要的。 一、MVC的概念MVC是Model-VIew-Controller,就是模型-视图-控制器,这些都是什么东西呢?MVC把软件系统分为三个部分:Model,View,Controller。在co...

时间类(增加n)

发布时间:2015-03-17 CLASS 博客 C++编程 IOS
 输入代码:/*
*Copyright(c)2015,烟台大学计算机与控制工程学院
*Allrightsreserved.
*文件名称:sum123.cpp
*作者:林海云
*完成日期:2015年3月17日
*版本号:v2.0
*
*问题描述:阅读、运行程序后,按要求扩充类的功能,请在原类基础上,在类内增加下列成员函数(将是内置成员函...

[zz]openstack swift 典型架构, 和openstack swift 简要说明

发布时间:2012-02-22 运维 SWIFT PYTHON
用openoffice画了个这么一个草图。2Swift是什么和Swift有哪些同类产品Swift是一个存多份,可扩展的分布式对象存储系统。可扩展到PB级。没有主控节点。支持REST接口。提供类似S3的云存储服务。Swift的同类产品,这个没把握,不知到luster,ceph算不算。3Swift当前的代码量和开发状态bin/目录下,工具代码:5685totalswift/目录下,核心代码:15880...

Cocos2d-x跨Android&iOS平台开发入门

发布时间:2012-10-23 ANDROID XCODE 平台 ECLIPSE JAVA IOS
好吧,确实存在这么一个游戏框架,她就是cocos2d-x!cocos2d-x基于c++把cocos2d的api重新移植了一遍。本教程由泰然教程组出品  Cocos2D是一个非常棒而且非常容易使用的游戏框架,但是,由于它是基于objc语言的,所以你只能使用它来开发ios和mac下面的游戏。 假如你可以使用和cocos2d相似的api来开发android上面的游戏,那岂不是更爽?这样,你就可以毫不费劲...

安装 Ruby 环境 -for-MAC

发布时间:2016-04-14 IOS
步骤0-安装系统需要的包   #ForMac  #先安装[Xcode](http://developer.apple.com/xcode/)开发工具,它将帮你安装好Unix环境需要的开发包步骤1-安装RVM RVM是干什么的这里就不解释了,后面你将会慢慢搞明白。    $curl-Lhttps://get.rvm.io|bash-sstable期间可能会问你sudo管理员密码,以及自动通过home...

IOS学习笔记30—两个ViewController间传值(一)

发布时间:2014-06-06 页面传值 IOS
IOS中,在两个ViewController之间传值有多种方式,这里学习其中一种,利用临时变量在两个ViewController之间传值,这可能不是最好的传值方式,但是也是一种选择。首先看看工程结构:其中ViewController是第一个界面,SecondViewController是第二个界面,UserEntity为一个实体对象,用来作为在两个界面间传值的媒介。接下来看看最后实现的效果:   ...

OpenStack介绍

发布时间:2018-09-09 SWIFT UI PYTHON
转自:http://www.chenshake.com/openstack%e4%bb%8b%e7%bb%8d/ 最近朋友给别人介绍我是做OpenStack,对方提了一句,如何用一句话告诉我OpenStack是什么。我想OpenStack就是AWS公有云的开源实现。功能可以满足企业私有使用。接下来我就要给朋友深入介绍一下OpenStack的技术相关内容,对方是Python开发者,我就努力写一篇Op...

iphone 截屏

发布时间:2011-10-18 IOS
externCGImageRefUIGetScreenImage();//需要先extern UIImage*image=[UIImageimageWithCGImage:UIGetScreenImage()]; UIImageWriteToSavedPhotosAlbum(image,nil,nil,nil);...

2017总结+胡扯

发布时间:2018-01-25 移动开发 RUBY SWIFT
 其实也没啥总结的,整个2017年就为了能不饿死努力。从一开始的桌面应用(Window)开发到移动端(iOS)再到RubyonRails,前端后端数据库API,基本上所有位置都干了一把。学到不少,也没啥好抱怨。最重要的目标也已经达成了,起码目前的留学日子能养活自己能付得起学费了。虽然学校基本不怎么去了,但是毕竟大石头落下去了,学校的垃圾课混个毕业还是稳的。 最近因为新参加的iOS项目是个老项目,是...

一个app应用视图载入、卸载过程

发布时间:2013-03-31 IOS
打开ViewController.m,看到以view开头的方法,一共6个。//当载入视图,特别是从NIB文件载入视图时,可以在这个方法里进行一些附加设置1.viewDidLoad//卸载视图,同时可以释放被retain的子视图资源2.viewDidUnload//视图载入后,准备显示出来3.viewWillAppear//视图已经显示出来4.viewDidAppear//视图卸载后,准备从win中...

如何做好教育软件开发?这两个环节不能忽视

发布时间:2021-11-03 ANDROID 小程序 在线教育 JAVA IOS
在科技水平和软件开发技术飞速发展的今天,结合传统教学的在线教育浮现在大家眼前,并且在2020年疫情的催化后走向了新的高峰。如今在线教育软件更是应渗透到了千家万户,从统计报告中我们计算得来,平均每四个中国用户就有一个使用过在线教育类软件,由此可见它的热门程度。在线教育为什么火爆相信大家都已心知肚明,因为教育是人们的刚需、是一切的根本、是每个人一生中必须经历的一个阶段,同时也是广大家长最为在意的一件事...

iOS 基于GCDAsyncSocket快速开发Socket通信

发布时间:2017-04-11 GCDASYNCSOCKET IOS
GCDAsyncSocket是CocoaAsyncSocket第三方库中的其中一个类,本文介绍的就是基于这一个类来做快速的socket通信开发,而且该库已经支持IPv4和IPv6我们对GCDAsyncSocket做了一层封装调用,它包含了建连、断开、重连、心跳、自定义请求首先,介绍一下CocoaAsyncSocket第三方库的用途CocoaAsyncSocketprovideseasy-to-us...

iOS tableView刷新

发布时间:2017-07-24 TABLEVIEW IOS
下面是我对AFN刷新一个简单的封装我们只需要传过去一个tableView就好了简化了一些代码#import<Foundation/Foundation.h>typedefNS_ENUM(NSInteger,refreshType){TableViewHeaderRefresh,TableViewFooterRefresh};@interfaceHuTableViewRefresh:NS...

iOS 性能优化总结

发布时间:2019-05-20 优化 IOS
黑客技术点击右侧关注,了解黑客的世界!Linux编程点击右侧关注,免费入门到精通!作者丨LaiYoung_https://juejin.im/post/5ace078cf265da23994ee493卡顿产生的原因在VSync信号到来后,系统图形服务会通过CADisplayLink等机制通知App,App主线程开始在CPU中计算显示内容,比如视图的创建、布局计算、图片解码、文本绘制等。随后CPU会...

IOS-UITableView入门(3)

发布时间:2017-04-27 UITABLEVIEW IOS
UITableView本身自带了(增、删)编辑功能:1.仅仅要调用UITableView的编辑代码就会进入编辑状态:[self.tableViewsetEditing:!self.tableView.editinganimated:YES];2.进入编辑状态的UITableView会调用代理的-(UITableViewCellEditingStyle)tableView:(UITableView*...

如何让IOS应用从容地崩溃

虽然大家都不愿意看到程序崩溃,但可能崩溃是每个应用必须面对的现实,既然崩溃已经发生,无法阻挡了,那我们就让它崩也崩得淡定点吧。IOSSDK中提供了一个现成的函数NSSetUncaughtExceptionHandler用来做异常处理,但功能非常有限,而引起崩溃的大多数原因如:内存访问错误,重复释放等错误就无能为力了,因为这种错误它抛出的是Signal,所以必须要专门做Signal处理。首先定义一个...

NSNotificationCenter消息中心

发布时间:2014-05-30 发射与接收 消息中心 IOS
发射方:-(void)publish{  //单例(唯一)的通知中心  NSNotificationCenter*center=[NSNotificationCenterdefaultCenter];  //通知的内容  NSDictionary*userinfo=@{NewsNotificationTitleKey:@"云南砍人了",NewsNotificationDateKey:@"昨天夜里"...

iOS 消息相关 NSNotificationCenter

发布时间:2014-08-15 NSNOTIFICATIONCENTER IOS
有的时候需要在两个Controller之前发送消息传递数据或者事件,这样时候会用到这样的消息功能,我用了NSNotificationCenter,mark一下,免得自己忘了。1,注册要收听的事件并且和回调函数联系起来:   NSNotificationCenter*notificationCenter=[NSNotificationCenterdefaultCenter];  [notificat...

APP文件 路径(真机PK模拟器)

发布时间:2014-11-07 APP路径 沙盒 应用程序 IOS
/*下面我们将沙盒目录路径打印出来看看*/
<prename="code"class="objc">
[selffileList:NSHomeDirectory()];-(void)fileList:(NSString*)directory{NSError*error=nil;NSFileManager*fileManager=[NSFileManagerdefault...

使用 Swift 制作一个新闻通知中心插件(2)

发布时间:2015-01-13 移动开发 SWIFT
我们在第一部分的文章中详细讲解了创建一个通知中心插件的整体过程。我们成功的在通知中心里面显示了新闻列表。但是截止到目前,我们还不能从通知中心的列表中查看新闻的详细内容。在这次的教程中,我们就以上次的教程为基础,继续将我们的通知中心插件的功能改进完善。如果您没有看过第一部分的教程,就请先参看教程的第一部分。新闻阅读界面我们在上一篇教程中,已经完成了通知中心插件的新闻列表显示,但是我们点击这个新闻列表...

iOS 自己定义页面的切换动画与交互动画 By Swift

发布时间:2014-10-08 动画 IOS
在iOS7之前,开发人员为了寻求自己定义NavigationController的Push/Pop动画,仅仅能受限于子类化一个UINavigationController,或是用自己定义的动画去覆盖它。可是随着iOS7的到来,Apple针对开发人员推出了新的工具,以更灵活地方式管理UIViewController切换。我把终于的Demo稍做改动,算是找了一个合适的应用场景,另外配上几张美图,拉拉人...

swift 赋值判断

发布时间:2015-11-05 SWIFT
 . 1varname:String?="Wing"2vargeting="Hello!"3ifletthisname=name{4geting="Hello,\(name)"//Hello,Wing5}6else7{8geting="Hello,无名氏"9}哎!为什么if判断里是一个赋值?那能有判断吗?哦!原来是判断赋值能否成功,成功则进入if判断体里,flase则进入else。如果将name=...

iOS多线程

发布时间:2019-04-08 NSTHREAD 多线程 GCD IOS开发 线程间通讯 IOS
pthreadpthread基于C开发的一套通用的多线程API,适用于Unix/Linux/Windows/MacOSX等系统.具有跨平台可移植性的特点,线程生命周期需要程序员自己管理,开发难度大,开发中几乎不再使用.NSThread1.创建//方法1+(void)detachNewThreadSelector:(SEL)selectortoTarget:(id)targetwithObject:...

Swift编程语言学习11—— 枚举全局变量、局部变量与类型属性

发布时间:2015-01-25 移动开发 SWIFT
全局变量和局部变量计算属性和属性监视器所描写叙述的模式也能够用于全局变量和局部变量,全局变量是在函数、方法、闭包或不论什么类型之外定义的变量,局部变量是在函数、方法或闭包内部定义的变量。 前面章节提到的全局或局部变量都属于存储型变量,跟存储属性类似,它提供特定类型的存储空间,并同意读取和写入。 另外,在全局或局部范围都能够定义计算型变量和为存储型变量定义监视器,计算型变量跟计算属性一样,返回一个计...

ios开发中有用的宏定义

发布时间:2013-04-03 IOS
#defineNavigationBar_HEIGHT44#defineSCREEN_WIDTH([UIScreenmainScreen].bounds.size.width)#defineSCREEN_HEIGHT([UIScreenmainScreen].bounds.size.height)#defineSAFE_RELEASE(x)[xrelease];x=nil#defineIOS_VE...

01背包问题 动态规划 c swift 双版本

发布时间:2017-12-14 SWIFT 数据结构与算法
题目:给定一个n种物品和一个能装m重量的背包,物品重量w,价值是p。问:如何才能使背包m重量,装最多价值的物品。概念:为什么这种题目会用动态规划,不用贪心算法?--我个人理解是,贪心算法每一步的最优解,可能导致最后的答案不是最优解。--而动态规划,可以在上一步或前几步不是最优解的情况下,解得当前这一步是最优解。///这位博主写的非常好,思路异常清晰。http://www.cnblogs.com/x...

[Swift]LeetCode4. 两个排序数组的中位数 | Median of Two Sorted Arrays

发布时间:2018-10-26 SWIFT
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/)➤GitHub地址:https://github.com/strengthen/LeetCode➤原文地址:https://www.cnblogs.com/streng...

ios jons解析问题

发布时间:2016-12-29 JONS IOS
各位大神,求助。 我从服务器返回的数据是jons,我这样解析的 结果为。 我想得到后面的roomId的数据该如何?...

iOS微博项目(五)- 实现超链接和时间,下拉,未读数,微博正文,评论

发布时间:2016-05-14 微博 IOS
1.正则表达式的使用2.实现超链接和时间,来源 3下拉1)baseTableView,用于下拉等2)weiboTableView多个地方都可以用到这个list3)重构微博列表4)下拉刷新和控制器的通信5)下拉实现6)显示未读数 7)加载提示3.显示微博正文1)显示评论,一开始一直不出来,调试了两天哎,后来发现是xib中有无关的label,删掉就好了。。。 2)显示评论数,开始评论数的section...

图片加载

发布时间:2015-12-08 IOS
Apple官方的文档为生成一个UIImage对象提供了两种方法加载图片:1. imageNamed,其参数为图片的名字;2. imageWithContentsOfFile,其参数也是图片文件的路径。那么两种有什么区别吗?肯定是有的。根据Apple的官方文档:imageNamed: 这个方法用一个指定的名字在系统缓存中查找并返回一个图片对象如果它存在的话。如果缓存中没有找到相应的图片,这个方法从指...

Swift Tips 010 - Avoiding default cases in switch statements

发布时间:2019-09-09 TIPS SWIFT
代码截图代码出处:SwiftTips010byJohnSundell[1]小笔记这段代码在说什么Swift里的Switch语句不同于Objective-C里的Switch语句,在Swift中,Switch语句必须是完备的。这就是说,每一个可能的值都必须至少有一个case分支与之对应。在某些不可能涵盖所有值的情况下,你可以使用默认(default)分支来涵盖其它所有没有对应的值,这个默认分支必须在s...

Swift 5进入发布倒计时

发布时间:2018-10-07 SWIFT
在正式发布Swift4.2之后,Swift团队现在启动了发布过程的最后阶段,把注意力集中在了Swift5上。Swift5计划于2019年初发布,其目标是在保持源代码兼容性的同时,实现ABI稳定性。\\ABI稳定性大致可以理解为跨Swift版本的“二进制兼容性”。ABI稳定性允许将框架链接到程序,而不管使用了哪个编译器版本来编译它们,只要两个编译器生成的代码都符合即将到来的SwiftABI。对于第三...

IOS-SegmentedControl(添加到Nav上)的简单使用方法

发布时间:2012-06-05 SEGMENTEDCONTROL IOS
/* 初始化导航按钮 */ {            credits = [ [ [ UIBarButtonItem alloc ]                         initWithTitle:@"Credits"                         style: UIBarButtonItemStylePlain                         tar...

哈哈哈哈,这个教人写烂代码的项目在 GitHub 上火了

如果说到什么是好代码,我们肯定都能说出一堆规则,例如使用一致的格式和缩进、使用清晰的变量名和方法名、在必要时提供文档与注释、不要过度精简代码等等。但是对于什么是烂代码,你有比较清晰的认识吗?在GitHub上有一个新项目,它描述了「最佳垃圾代码」的十九条关键准则。从变量命名到注释编写。这些准则将指导你写出最亮眼的烂代码。为了保持与原GitHub项目一致的风格,下文没有进行转换。读者们可以以相反的角度...

选择PyTorch进行深度学习的5个理由

发布时间:2020-05-21 大数据 SWIFT 人工智能
PyTorch绝对是当下的潮流,尤其是在最近的1.3和1.4版本中,带来了许多性能改进以及对移动平台更友好的开发人员支持。但是为什么要选择使用PyTorch,而不是其他框架,如MXNet,Chainer或TensorFlow?让我们看一下构成PyTorch强大案例的五个原因。在我们开始之前,请甚至在我开始之前就已经输入过愤怒的推文和电子邮件的TensorFlow用户恳求:是的,还有很多理由选择Te...

如何获得ios系统版本号、设备名称

发布时间:2013-02-24 版本号 IOS
获得IOS系统版本号1[[[UIDevicecurrentDevice]systemVersion]floatValue]获得硬件名称  1+(NSString*)getMachine{2size_tsize;3sysctlbyname("hw.machine",NULL,&size,NULL,0);4char*name=malloc(size);5sysctlbyname("hw.mac...

iphone开发之设置UITabBar的相关属性

发布时间:2013-06-05 TABBAR IPHONE代码片段 IOS
ios默认的样式不太适合我们的应用,可以通过一下方法设置相关属性:设置背景:[_tabBarsetBackgroundImage:[UIImageimageNamed:@"bg_tabbar"]];设置某个Item选中的效果:_tabBar.selectionIndicatorImage=[UIImageimageNamed:@"bar_item_selected"];//设置选中效果图片设置UI...

iOS 关于iTMSTransporter上传IPA报错问题

发布时间:2022-11-17 MACOS IOS基础 XCODE IOS
前言因为疫情,然后就半个月才上班,今天上APP新版本的时候发现iTMSTransporter无法使用了。一、报错Cannotobtainthecontentproviderpublicid.Pleasespecifyaprovidershortnameusingthe-asc_provideroption.二、解决方法这个好解决,主要添加-asc_provider参数即可,也就是TeamID,xc...

xcode创建一个工程内创建多个版本

发布时间:2014-02-12 IOS IOS7
下周要在原有的项目中在在多一个版本,今天就把方法重新整理了一下,分享给大家。不正确的地方也希望朋友们能指正出来。一起交流成长,谢谢!1、新增一个target。因为我们是建立一个和原来基本一致的target,所以可以选择复制来新建一个target当你选择复制后,会多出两个文件,一个是TARGETS是会出现一个(比如项目叫A)Acopy,和一个plist文件(Acopy-info.plist文件,在x...

xcode的重构 快照功能

发布时间:2012-12-25 IOS
http://blog.csdn.net/f520131480315/article/details/6457927重构代码,是我们在做项目过程中总会出现的。不管是重构别人的代码,还是重构自己的代码,有时总会让人很痛苦又惬意。借助IDE的集成功能,一般我们能把其中的痛苦降低些,以前常用eclipse的重构功能来改java的代码。现在常用xcode来做程序,当然要找找xcode上的重构功能啦。很庆幸...

xcode 自动添加注释,生成文档

发布时间:2014-08-12 IOS
xcode自动添加注释,生成文档  2013-12-2610:19:48|  分类: Apple|举报|字号 订阅一、自动生成注释代码    添加一个快捷键,生成注释代码    ThisService下载连接:http://wafflesoftware.net/thisservice/     Doxygen.rb下载连接:http://www.brokenrul.es/blog/wp-conte...

iOS 常用宏定义

发布时间:2016-02-26 IOS
//AppFrame#defineApplication_Frame   [[UIScreenmainScreen]applicationFrame]//AppFrameHeight&Width#defineApp_Frame_Height    [[UIScreenmainScreen]applicationFrame].size.height#defineApp_Frame_Width...