本人从在学校开始到现在上班( 13 年毕业)一直做 web 和 android 方面的开发,最近才开学习及 ios 的开发,所以 ios 学习中有不当之处,请大家留言赐教啦以前从来没有接触过 Objective-C 这门语言,不过我想面向对象编程应该大体思想都差不多在 ios 中的 UITableView 学习中,开发过 android 的朋友应该马上会联想到 ListView 和 Gri dView 这两个控件, 接下来以 ListView 为例子,跟 UITableView 做个对比, 看看它们实现的方式有什么相同之处。怎么样能让有 android 开发经验的朋友, 马上掌握 UITableView 这个控件先新建一个 demo ,取名 TabViewTest (原谅我吧-- ,本来要取名 TableViewTest ,谁知脑抽新建项目的时候写错了,诶。。。算了,将错就错吧--) ios 没有命名空间的概念, 没有包概念( 这也是为什么 ios 中的类都有前缀的原因, 比如 NS 等), 所以上面像“包”一样的文件夹都是我自己新建的“ group ”, 只是为了看起来比较有分层的概念而已,打开 finder ,到项目文件里一看如下图,妈呀-- ,所有的类都挤在一个文件夹里面。。。这是我觉得蛋疼的地方之一-。- 再回来看看我们项目结构, 我分的几个 group , 如果我把 controller 这个 group 的名字改成“a ctivity ”, android 开发者肯定有种似曾相识的感觉了: controller :控制层 group ,相当于 android 中的 activity layout :布局 group ,相当于 android 中 res 目录下的 layout ( xml 布局文件) model :这个不用说就知道放了什么东西了,经典的 Person 这个测试用的数据结构 adapter :为了还念 android 中的适配器,然后我就取了这么个 group 名字好了,现在正式开始代码的编写打开 , 它实现了 UIApplicationDelegate 协议, 所以可以在该类中实现应用状态的回调函数在 application:didFinishLaunchingWithOptions: 方法(应用程序启动时回调该方法)中来设置它的 RootController ( 根控制器, 不知道这样翻译专不专业--), 我的实现是生成一个 U INavigationController 作为它的 root controller , http://a. 然后把自己新建的一个 NaviRootController ( 在这个 Controller 中放入一个 UITableView , 具体下面会讲到) 作为 UINavigationController 的 root view , 具体代码如下( 这个不是我们本次的重点, 所以一笔带过): 1- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOpt ions:(NSDictionary *)launchOptions 2{ 3 = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 45 //生成 UINavigationController 对象,并设置它的 RootController 6 UINavigationController *naviController = [[UINavigationController alloc] initWithRootViewController:[[NaviRootController alloc] init]]; 7 //然后把 NavigationController 设置为 window 的 RootViewController 8 [ setRootViewController:naviController]; 9 http://j. 10 = [UIColor whiteColor]; 11 [ makeKeyAndVisible]; 12 return YES; 13} 然后,重点就是 NaviRootController 这个 Controller 了, 新建 NaviRootController ,继承 UIViewController , 文件中: 声明一个 NSMuta
【IOS】从android角度来实现(理解)IOS的UITableView 来自淘豆网m.daumloan.com转载请标明出处.