V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iOS 开发实用技术导航
NSHipster 中文版
http://nshipster.cn/
cocos2d 开源 2D 游戏引擎
http://www.cocos2d-iphone.org/
CocoaPods
http://cocoapods.org/
Google Analytics for Mobile 统计解决方案
http://code.google.com/mobile/analytics/
WWDC
https://developer.apple.com/wwdc/
Design Guides and Resources
https://developer.apple.com/design/
Transcripts of WWDC sessions
http://asciiwwdc.com
Cocoa with Love
http://cocoawithlove.com/
Cocoa Dev Central
http://cocoadevcentral.com/
NSHipster
http://nshipster.com/
Style Guides
Google Objective-C Style Guide
NYTimes Objective-C Style Guide
Useful Tools and Services
Charles Web Debugging Proxy
Smore
WildCat
V2EX  ›  iDev

iOS 进阶开发如何学习?有什么完整的开源项目或者 CocoaTouch 进阶教程吗?

  •  2
     
  •   WildCat · 2014-08-08 12:24:07 +08:00 · 7082 次点击
    这是一个创建于 3789 天前的主题,其中的信息可能已经有所发展或是发生改变。
    自己接触iOS有一段时间了,但是感觉还是入门水准,Amazon上能看的中文书籍全是入门,都是最基本的CocoaTouch调用,没有自己进阶开发的内容。

    现在正赶上iOS7->iOS8交替的时候,很多iOS7的实现都已经废弃,看资料的时候也是比较纠结。

    我不知道如何描述我的需求,以达令礼物店的这个效果举个例子:


    圆形的区域是个SegmentedControl,需要有滑动效果,这个在CocoaPods里有现成的(HMSegmentedControl),但是我想修改一下效果,但是读起来很费劲。
    另外就是下面的TableView和它外面的ParentView(方形区域),TableView的ParentView应该是一个ScrollView的子类,用来响应SegmentedControl点击或者自己左右滑动的,这个的实现我以前是用DRPaginatedScrollView来做,但是它依赖一个Masonry,我不知道用这个好不好,是否太重,所以很纠结想自己实现。

    不知道前辈们有什么看法,现在写起来很纠结,一两天都没什么进度。
    14 条回复    2014-08-20 13:58:18 +08:00
    ylkk925
        1
    ylkk925  
       2014-08-08 12:51:33 +08:00   ❤️ 6
    看样子,你还没有自己的知识体系,谈一下我的建议。

    学基础,这里的基础是指Cocoa的构建基础,比如响应链的构成,控件的继承关系(特别是协议的实现),视图的层级结构,layer的层级结构等;你所要应用的知识是属于哪个框架,这个你要弄清楚;再往深一点,你可以了解设计模式在Cocoa中的应用,Runtime,Runloop等。

    你要学习的ios开发知识,官方文档远远足矣(苹果的官方文档相当不错的),很多人都不读,碰到问题就google,stackoverflow,解决的都是小的知识点,难以提高;学技术就像读书一样吧,你可以从开发语言和系统框架入手,然后选择某个点多花时间学习,就是所谓的精读和泛读结合;阅读优秀的第三方库也是很重要的,难以掌握,说明积累的不够。
    WildCat
        2
    WildCat  
    OP
       2014-08-08 12:59:55 +08:00
    @ylkk925
    感谢。

    不想读官方文档的原因在于不知道以什么顺序和速度去读,举个例子:
    https://developer.apple.com/library/ios/navigation/#section=Frameworks&topic=UIKit
    UIKit的文档,到底从哪里开始呢?
    chisj
        3
    chisj  
       2014-08-08 13:03:00 +08:00   ❤️ 2
    请参看巧哥的博客: http://blog.devtang.com/blog/2014/07/27/ios-levelup-tips/
    iOS开发如何提高。
    其实我觉得任何技术都应该差不多,那就是潜心研究,多花时间多踩坑,有一定的积累量才会带来质的进步。CocoaTouch也一样的,甚至还更方便,因为现在资料很多,很全面。
    hoogle
        4
    hoogle  
       2014-08-08 13:23:47 +08:00   ❤️ 1
    一般这样的效果自己实现。。 就是几个button,和根据scrollView的offsetX变化位置的view。。
    railgun
        5
    railgun  
       2014-08-08 14:00:34 +08:00   ❤️ 3
    @WildCat 先看两个指南:
    View Programming Guide For iOS
    View Controller Programming Guide For iOS
    看苹果的文档不要从参考(Reference)开始看,从指南(Guide)开始看。
    一般你看到一个具体类的时候,如果有相关的指南都会有链接直接跳过去的
    ylkk925
        6
    ylkk925  
       2014-08-08 14:22:48 +08:00   ❤️ 2
    @WildCat

    5楼的方法很好,读Guide;碰到比较重要,但文档说明不够的知识点,基本上可以找到相应的书籍和博客来补充。
    0x001
        7
    0x001  
       2014-08-08 15:29:53 +08:00   ❤️ 2
    苹果的framework首先要熟悉,然后就要多看别人的App, blog, 自己模仿实现。 然后就是多读开源的代码, 看多了就知道细节了。 比如你说的那个HMSegmentedControl, 慢慢把它消化指,然后自己实现一遍。

    写代码要达到越写越少的境界。
    TimLang
        8
    TimLang  
       2014-08-08 16:04:24 +08:00
    最近也在学ios,1楼说的基础体系确实重要,我入门就开始用故事板了,看的开源项目都没用故事版的,自己摸索,走了很多弯路。。
    jetbillwin
        9
    jetbillwin  
       2014-08-08 20:32:20 +08:00   ❤️ 1
    使用UIScrollView就可以实现,然后可以使用SegmentedControl来控制ScrollerView的切换。不知道UIPageControl可以定制不,如果可以的话,可以自己定制,应该可以。作为写RubyMotion的我来说,遇到问题都是直接搜Objective-C的解决方案,然后看OC的代码。搞得我现在感觉都会写OC
    -_-#
    Madimo
        10
    Madimo  
       2014-08-16 20:21:10 +08:00
    WildCat
        11
    WildCat  
    OP
       2014-08-16 21:24:01 +08:00 via iPhone
    @Madimo 我知道喵神和巧哥哇~妹纸
    dopcn
        12
    dopcn  
       2014-08-19 23:52:47 +08:00   ❤️ 2
    我也似乎算处在需要进阶的阶段,入门半年。
    我觉得这个阶段有两个方面要做:
    1. UIKit Foundation等的深入,这方面我觉得就是实践中不断的学习,做自己的项目
    2. 代码优化。代码的层次:可编译-可用-可测试-可重用,这个方面应该进入更大的程序员的世界而不是 iOS 程序员的世界去学习
    dopcn
        13
    dopcn  
       2014-08-20 13:18:33 +08:00
    补充一个交流也很重要,iOS 新手开发交流群欢迎你:345117452
    本群比较水,能从水里捞出鱼是自己的本事之一,没有自制力慎加
    WildCat
        14
    WildCat  
    OP
       2014-08-20 13:58:18 +08:00 via iPhone
    @dopcn IM是效率杀手,感谢好意,但是我肯定要避免这种方式。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   952 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 19:17 · PVG 03:17 · LAX 11:17 · JFK 14:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.