今天遇到这个问题,即重写的方法 - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section 没有调用. 可能的原因: 1. 没有设置 delegate 2. 没有重写方法 - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section 虽然我的问题不是上述两个,但也…
今天遇到这个问题, UITableView 的代理方法 tableView:cellForRowAtIndexPath: - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath; 没调用. 有人说可能 delegate 或 dataSource 没有配置,检查了下,都配置了,如下: self.tableView.delegate=self; sel…
最近做一个demo,涉及按照数据分类然后依照分类在 cellForRowAtIndexPath形成不同类型的cell,就是有判断(在viewdidload里面做)和形成(在 cellForRowAtIndexPath做)两个阶段.这个时候我就有了一个疑问,viewdidload和 cellForRowAtIndexPath是什么顺序进行的,于是在几个函数里面记录打印了一下过程: 2015-03-03 13:14:20.970 whenToCom[9790:1381585] -[Contacter…
可能原因:没有调用 reloadData 方法. [self.tableView reloadData];…
1.OC调用swift 在OC项目中创建一个swift文件时,Xcode会提示 需要创建一个桥接文件,点击确定创建桥接文件,Xcode会自动创建一个桥接文件,名字:工程名-Bridging-Header.h.这个桥接文件就是 swift 调用 OC文件的时候使用的 1)进入TARGETS -> Build Settings -> Packaging 中,设置 Defines Module 为 YES: 设置Product Module Name,也可以不设置,默认为工程的名字. 2)swift…
首先.如果你调用self.view的时候,就会调用view的getter方法, 这个时候,view是空的,那么系统就会自动给你创建一个view,然后就会触发ViewDidLoad方法.那么这个时候,如果你init方法里有数组初始化.但是你还没走到那步,而直接就给数组赋值了,那么这个值赋值给了一个不存在的数组.这样就容易出现错误.所以,尽量不要在init方法里写可视化控件的语句. 附1: UIViewController的生命周期: 当一个视图控制器被创建,并在屏幕上显示的时候. 代码的执行顺序1…
iOS里面有三种调用函数的方式: 直接调用方法   [对象名 方法]; performselector:    [对象名 perform方法]; NSInvocation     调用 在使用代理调用方法的时间,会出现警告,使用类似的强转 [(MainViewController*)self.delegatelineViewClicke:index]; 是一种方法 但是有的时间两个类互相包含是有错的,我们只在一个类中使用了@class前向声明,这时间强转也是不行的 我们可以在.h文件里面使用@c…
当两个section的cell数量都为5的时候,方法的调用顺序: -[ViewController numberOfSectionsInTableView:] -[ViewController tableView:titleForHeaderInSection:]-[ViewController tableView:titleForFooterInSection:]-[ViewController tableView:numberOfRowsInSection:], section = 1-[V…
IOS的AppDelegate方法中的事件触发调用 参考:http://blog.sina.com.cn/s/blog_a573f7990101bphp.html //当应用程序将要进入非活动状态执行,在此期间,应用程序不接受消息或事件,比如来电 - (void)applicationWillResignActive:(UIApplication *)application { NSLog(@"应用程序将要进入非活动状态,即将进入后台"); } //应用程序已经进入后台运行 - (vo…
下来我们看第二种情况 就是js 中是通过一个对象来调用方法的. 此处稍微复杂一点我们需要使用到 JSExport 凡事添加了JSExport协议的协议,所规定的方法,变量等 就会对js开放,我们可以通过js调用到 如果js是一个参数或者没有参数的话 就比较简单,我们的方法名和js的方法名保持一致即可 比如: js方法为 testobject.TestOneParameter('参数1') 那么 我们在oc中添加的代理方法就为 -(void)TestOneParameter:(NSString *…
layoutSubviews在以下情况下会被调用: 1.init初始化不会触发layoutSubviews.2.addSubview会触发layoutSubviews.3.设置view的Frame会触发layoutSubviews,当然前提是frame的值设置前后发生了变化.4.滚动一个UIScrollView会触发layoutSubviews.5.旋转Screen会触发父UIView上的layoutSubviews事件.6.改变一个UIView大小的时候也会触发父UIView上的layoutS…
1.在StoryBoard上创建2个tableView,并用autolayout约束. 2.在ViewController上拖进来. @property (weak, nonatomic) IBOutlet UITableView *leftTableView; @property (weak, nonatomic) IBOutlet UITableView *rightTableView; 3.实现代理方法: 重点:区分tableView的方法就是用对象比对的方法,传进来的tableView是…
原文网址:http://www.cnblogs.com/wfwenchao/articles/3718742.html - (void)viewDidLoad { [super viewDidLoad]; //初始化数据 NSArray *array1_=@[@"张铁林",@"张国立",@"张国荣",@"张艺谋",@"张惠妹"]; NSArray *array2_=@[@"李小龙",@&…
在这次项目中遇到了一个特别奇葩的问题:表视图创建的cell在7以上的系统能正常运行显示,在模拟器上就不能正常实现......为解决这个问题,纠结了好久...... 对在7系统上不显示的猜测: 用masory设置约束不对,导致cell不显示; 对这个猜测也弄了好久,对一个个控件的约束都好好检查了一遍,发现实在是没有错的...后来迫不得已,自己不用masory,直接用frame约束,发现还是不显示,这才对masory的问题放弃了.... 最后考虑了下:他不是内容不显示,他是直接这些cell不显示,有…
tableview的datasource代理 @required的两个数据源方法 1.返回每个 session 中 cell 的个数 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section; 2.创建tableviewCell(注意复用) - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtI…
根据网络上的优化方法进行了总括.并未仔细进行语言组织.正在这些优化方法进行学习,见另一篇文章 提高app流畅度 1.cell子控件创建写在 initWithStyle:reuseIdentifier 2.后台计算高度,布局.放在集合中下次使用.(计算高度是件很麻烦的事,分散计算,减少计算次数) 3.有一些显示的内容有富文本,特别是从HTML 转化为属性字符串时候. 解决方案,后台提前转化需要的属性字符串,然后缓存起来避免重复转化带来的CPU性能消耗.可以参考DTCoreText从HTML转化属性…
IOS各种调试技巧豪华套餐 普通操作 如图3 基本的断点操作如下 图4 点击那个黑列列就创建了一个断点,再次点击就临时取消这个断点(但是不删除),长按那个断点拖出去就删除了(mac os的系统工程师就是稀饭拖动的快感),当然也可以右键那个创建的断点,会弹出相应地菜单.当然也还可以监视某个变量!图5 在对象视图中,右键某个对象,点击“Watch ‘XXX’”就完成XXX对象的监视了. 这里我监视了lab这个UILabel的变量,每当这个变量进行更新它的信息就会被打印到控制台.好吧!我们最基本的创建…
最近iOS 11 下来之后需要适配系统,故此测试系统发现同一种机器上tableView与顶部控件,或者导航栏之间的有大量的留白: 这个问题是有的界面有,有的界面无: 修改与导航栏或者其他控件之间的距离也没有什么用: 具体如下: 最后发现是因为没有设置tableView的头视图的问题: 以前如果不设置默认为空,现在要专门设置为空才行解决方法如下 #pragma mark 此方法加上是为了适配iOS 11出现的问题 - (UIView *)tableView:(UITableView *)table…
tableView代理方法执行顺序,随着iOS系统版本的不断升级,执行顺序也有所变化 1.iOS7.1中先依次调一遍heightForRow方法再依次调一遍cellForRow方法,在调cellForRow方法的时候并不会再调一次对应的heightForRow方法. 2.iOS8中先依次调heightForRow(如果行数超过屏幕依次调用两次,如果行数很少,没有超过屏幕,只依次调用一次),之后每调一次cellForRow的时候又调一次对应的heightForRow方法. 3.iOS9和iOS10…
ios tableview 上加 textfiled 首先附上我项目中用曾经用到的几张图  并说明一下我的用法: 图1: 图2: 图3: 心在你我说一下  我当初的实现 方法 ,希望能给你们一些  启示 图1:  我采用的是最简单的方法   因为cell的个数比较少 并且不会出现键盘把cell挡住的情况  所以我直接就是用的 view 上边加 label  +textfield  虽然代码很繁琐 但是 还是实现了基本的效果 图2:由于这个cellde 个数比较多 再使用   view+label…
跨平台这种事情不管多NB, 总要有些与原生系统交互的方法, 比如  Unity3D与iOS消息交互方法. 一: 建立一个空的Unity工程. File -->  New Project 二: 编写脚本文件 (Test.cs) 在Project选项卡中, create ->C# script, 命名为Test, 双击, 编写此cs文件. using UnityEngine; using System.Collections; public class Main : MonoBehaviour {…
UITableView显示数据的过程 1.调用一次tableView:numberOfRowsInSection:方法确定行数 2.调用多次tableView:heightForRowAtIndexPath:方法确定每一行的高度 (注意:有多少行行,就调用多少次.以后都不会再调用,除非刷新数据) 3.每当有一个Cell进入视野范围内时,就会调用 tableView:cellForRowAtIndexPath:方法返回每一行对应的Cell对象 4.拿到每一行的Cell对象后,再确认这个Cell的高…
Method Swizzle黑魔法,修改 ios 系统类库方法   版权声明:本文为博主原创文章,未经博主允许不得转载. 一般来说,系统提供的方法已经足够开发了,但是有的时候有些需求用普通方法不好做. 如:在所有的viewcontroll 的viewwillappear:方法之前打个log 你可能会这么做: 1. 建一个uiviewcontroll 父类,重写viewwillappear方法,调用super viewwillappear 方法之前加上log 2. 所有新建的uiviewcontr…
为了方便在ios下调用webserivce,找来了wsdl2objc这样一个开源的框架来解析webservice方便在ios下引用. 下面做个小例子. 1.首先是用Asp.net搭建一个测试的webserivce并放在IIS服务器上面 核心代码如下: 返回一个TTT的泛型集合 //数据加载重新优化 [WebMethod(Description = "TypeTest for ios")] public List<TTT> getT() { List<TTT> t…
1. 程序最终都将在内存中执行,变量只有在内存中占有一席之地时才能被访问. 类的静态成员(变量和方法)属于类本身,在类加载的时候就会分配内存,可以通过类名直接去访问:非静态成员(变量和方法)属于类的对象,所以只有在类的对象产生(创建类的实例)时才会分配内存,然后通过类的对象(实例)去访问. 在一个类的静态成员中去访问其非静态成员之所以会出错是因为在类的非静态成员不存在的时候类的静态成员就已经存在了,访问一个内存中不存在的东西当然会出错: 而类又是在什么时候加载的呢? 由引导类加载器负责加载的核心…
UITableViewCell它有两个属性highLighted.selected.很明显一个是高亮状态, 一个是选中状态. UITableViewCell, 对应的2个方法 // 高亮状态调用的方法 - (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated; // 选中状态调用的方法 - (void)setSelected:(BOOL)selected animated:(BOOL)animated; // 这个方法让ta…
项目需要做了一个类似qq联系人的折叠表格,思路很简单:设置每个section的header,在header上显示组名等信息,然后根据折叠与否,设置每个section中cell的数量,如果折叠,则将之设置为0,否则设置为实际的cell数量,然后刷新表格即可. 那么问题来了: 1.如果使用UITableViewStylePlain样式的表格,那么header是会在表格滑动的时候在顶部悬浮,而不是跟随表格的滑动而一起滑动. 2.如果使用了UITableViewStyleGrouped样式的表格,tab…
go/golang main() init()方法的调用 u011156212 · 2015-10-20 13:00:05 · 9965 次点击 · 预计阅读时间 1 分钟 · 27分钟之前 开始浏览 这是一个创建于 2015-10-20 13:00:05 的文章,其中的信息可能已经有所发展或是发生改变. main() ,init()方法是go中默认的两个方法,两个保留的关键字. init()方法 是在任何package中都可以出现,但是建议 每个package中只包含一个init()函数比较好…
我们在面试中经常碰到有关多态的问题,之前我也一直被此类问题所困扰,闹不清到底执行哪个方法. 先给出一道简单的面试题,大家猜猜看,输出是?     public class A    {        public void MethodF()         {             Console.WriteLine("A.F");         }        public virtual void MethodG()         {             Consol…
iOS tableview cell 的展开收缩 #import "ViewController.h" @interface ViewController ()<UITableViewDataSource,UITableViewDelegate>{ NSMutableArray *_allArray;//创建一个数据源数组 NSMutableDictionary *dic;//创建一个字典进行判断收缩还是展开 } @property (nonatomic,strong)UI…