├── tableview.jpeg ├── syTableView ├── Images.xcassets │ ├── JggIcon │ │ ├── 1.imageset │ │ │ ├── 1.jpg │ │ │ └── Contents.json │ │ ├── 2.imageset │ │ │ ├── 2.jpg │ │ │ └── Contents.json │ │ ├── 3.imageset │ │ │ ├── 3.jpg │ │ │ └── Contents.json │ │ ├── 4.imageset │ │ │ ├── 4.jpg │ │ │ └── Contents.json │ │ ├── 5.imageset │ │ │ ├── 5.jpg │ │ │ └── Contents.json │ │ ├── 6.imageset │ │ │ ├── 6.jpg │ │ │ └── Contents.json │ │ ├── 7.imageset │ │ │ ├── 7.jpg │ │ │ └── Contents.json │ │ ├── 8.imageset │ │ │ ├── 8.jpg │ │ │ └── Contents.json │ │ ├── 9.imageset │ │ │ ├── 9.jpg │ │ │ └── Contents.json │ │ ├── 10.imageset │ │ │ ├── 10.jpg │ │ │ └── Contents.json │ │ ├── 11.imageset │ │ │ ├── 11.jpg │ │ │ └── Contents.json │ │ ├── 12.imageset │ │ │ ├── 12.jpg │ │ │ └── Contents.json │ │ ├── 13.imageset │ │ │ ├── 13.jpg │ │ │ └── Contents.json │ │ ├── 14.imageset │ │ │ ├── 14.jpg │ │ │ └── Contents.json │ │ ├── 15.imageset │ │ │ ├── 15.jpg │ │ │ └── Contents.json │ │ ├── 16.imageset │ │ │ ├── 16.jpg │ │ │ └── Contents.json │ │ ├── 17.imageset │ │ │ ├── 17.jpg │ │ │ └── Contents.json │ │ ├── 18.imageset │ │ │ ├── 18.jpg │ │ │ └── Contents.json │ │ ├── 19.imageset │ │ │ ├── 19.jpg │ │ │ └── Contents.json │ │ ├── 20.imageset │ │ │ ├── 20.jpg │ │ │ └── Contents.json │ │ └── 21.imageset │ │ │ ├── 21.jpg │ │ │ └── Contents.json │ ├── listIcon │ │ ├── wallet_trade.imageset │ │ │ ├── wallet_trade@2x.png │ │ │ ├── wallet_trade@3x.png │ │ │ └── Contents.json │ │ ├── my_laapp_icon.imageset │ │ │ ├── my_laapp_icon@2x.png │ │ │ ├── my_laapp_icon@3x.png │ │ │ └── Contents.json │ │ ├── my_wallet_icon.imageset │ │ │ ├── my_wallet_icon@2x.png │ │ │ ├── my_wallet_icon@3x.png │ │ │ └── Contents.json │ │ ├── my_setting_icon.imageset │ │ │ ├── my_setting_icon@2x.png │ │ │ ├── my_setting_icon@3x.png │ │ │ └── Contents.json │ │ ├── my_bookmark_icon.imageset │ │ │ ├── my_bookmark_icon@2x.png │ │ │ ├── my_bookmark_icon@3x.png │ │ │ └── Contents.json │ │ ├── my_download_icon.imageset │ │ │ ├── my_download_icon@2x.png │ │ │ ├── my_download_icon@3x.png │ │ │ └── Contents.json │ │ ├── my_privilege_icon.imageset │ │ │ ├── my_privilege_icon@2x.png │ │ │ ├── my_privilege_icon@3x.png │ │ │ └── Contents.json │ │ ├── my_photo_logged_in.imageset │ │ │ ├── my_photo_logged_in@2x.png │ │ │ ├── my_photo_logged_in@3x.png │ │ │ └── Contents.json │ │ ├── wallet_paysecurity.imageset │ │ │ ├── wallet_paysecurity@2x.png │ │ │ ├── wallet_paysecurity@3x.png │ │ │ └── Contents.json │ │ ├── my_notification_icon.imageset │ │ │ ├── my_notification_icon@2x.png │ │ │ ├── my_notification_icon@3x.png │ │ │ └── Contents.json │ │ ├── toolbar_goforward_normal.imageset │ │ │ ├── toolbar_goforward_normal@2x.png │ │ │ ├── toolbar_goforward_normal@3x.png │ │ │ └── Contents.json │ │ ├── pixel_search_share_friends.imageset │ │ │ ├── pixel_search_share_friends@2x.png │ │ │ └── Contents.json │ │ ├── toolbar_goforward_highlighted.imageset │ │ │ ├── toolbar_goforward_highlighted@2x.png │ │ │ ├── toolbar_goforward_highlighted@3x.png │ │ │ └── Contents.json │ │ └── personalcenter_tab_icon_selected.imageset │ │ │ ├── personalcenter_tab_icon_selected@2x.png │ │ │ ├── personalcenter_tab_icon_selected@3x.png │ │ │ └── Contents.json │ └── AppIcon.appiconset │ │ └── Contents.json ├── UI │ └── Demo │ │ ├── Model │ │ ├── RowViewModel.m │ │ ├── JiugonggeModel.m │ │ ├── JiugonggeModel.h │ │ └── RowViewModel.h │ │ ├── View │ │ ├── TestView.h │ │ ├── JiugonggeView.h │ │ ├── RowView.h │ │ ├── TestView.m │ │ ├── JiugonggeView.m │ │ └── RowView.m │ │ ├── ViewController │ │ ├── RowViewController.h │ │ ├── DemoViewController.h │ │ ├── DynamicViewController.h │ │ ├── SectionViewController.h │ │ ├── JiugonggeViewController.h │ │ ├── DynamicViewController.m │ │ ├── SectionViewController.m │ │ ├── DemoViewController.m │ │ ├── RowViewController.m │ │ └── JiugonggeViewController.m │ │ └── DataManager │ │ ├── DemoDataManager.h │ │ └── DemoDataManager.m ├── SYTableView │ ├── SYTableViewEntity.m │ ├── SYSectionEntity.h │ ├── SYSectionEntity.m │ ├── SYTableViewHeader.h │ ├── SYTableViewEntity.h │ ├── SYTableViewCell.h │ ├── SYTableView.h │ ├── SYTableViewCell.m │ └── SYTableView.m ├── AppDelegate │ ├── AppDelegate.h │ └── AppDelegate.m ├── main.m ├── Info.plist └── Base.lproj │ ├── Main.storyboard │ └── LaunchScreen.xib ├── syTableView.xcodeproj ├── project.xcworkspace │ ├── contents.xcworkspacedata │ ├── xcuserdata │ │ └── shiyuan.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcshareddata │ │ └── SYTableView.xccheckout ├── xcuserdata │ └── shiyuan.xcuserdatad │ │ ├── xcschemes │ │ ├── xcschememanagement.plist │ │ └── syTableView.xcscheme │ │ └── xcdebugger │ │ └── Breakpoints_v2.xcbkptlist └── project.pbxproj ├── SYTableViewTests ├── Info.plist └── SYTableViewTests.m ├── syTableView.podspec └── README.md /tableview.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/HEAD/tableview.jpeg -------------------------------------------------------------------------------- /syTableView/Images.xcassets/JggIcon/1.imageset/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/HEAD/syTableView/Images.xcassets/JggIcon/1.imageset/1.jpg -------------------------------------------------------------------------------- /syTableView/Images.xcassets/JggIcon/2.imageset/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/HEAD/syTableView/Images.xcassets/JggIcon/2.imageset/2.jpg -------------------------------------------------------------------------------- /syTableView/Images.xcassets/JggIcon/3.imageset/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/HEAD/syTableView/Images.xcassets/JggIcon/3.imageset/3.jpg -------------------------------------------------------------------------------- /syTableView/Images.xcassets/JggIcon/4.imageset/4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/HEAD/syTableView/Images.xcassets/JggIcon/4.imageset/4.jpg -------------------------------------------------------------------------------- /syTableView/Images.xcassets/JggIcon/5.imageset/5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/HEAD/syTableView/Images.xcassets/JggIcon/5.imageset/5.jpg -------------------------------------------------------------------------------- /syTableView/Images.xcassets/JggIcon/6.imageset/6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/HEAD/syTableView/Images.xcassets/JggIcon/6.imageset/6.jpg -------------------------------------------------------------------------------- /syTableView/Images.xcassets/JggIcon/7.imageset/7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/HEAD/syTableView/Images.xcassets/JggIcon/7.imageset/7.jpg -------------------------------------------------------------------------------- /syTableView/Images.xcassets/JggIcon/8.imageset/8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/HEAD/syTableView/Images.xcassets/JggIcon/8.imageset/8.jpg -------------------------------------------------------------------------------- /syTableView/Images.xcassets/JggIcon/9.imageset/9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/HEAD/syTableView/Images.xcassets/JggIcon/9.imageset/9.jpg -------------------------------------------------------------------------------- /syTableView/Images.xcassets/JggIcon/10.imageset/10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/HEAD/syTableView/Images.xcassets/JggIcon/10.imageset/10.jpg -------------------------------------------------------------------------------- /syTableView/Images.xcassets/JggIcon/11.imageset/11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/HEAD/syTableView/Images.xcassets/JggIcon/11.imageset/11.jpg -------------------------------------------------------------------------------- /syTableView/Images.xcassets/JggIcon/12.imageset/12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/HEAD/syTableView/Images.xcassets/JggIcon/12.imageset/12.jpg -------------------------------------------------------------------------------- /syTableView/Images.xcassets/JggIcon/13.imageset/13.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/HEAD/syTableView/Images.xcassets/JggIcon/13.imageset/13.jpg -------------------------------------------------------------------------------- /syTableView/Images.xcassets/JggIcon/14.imageset/14.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/HEAD/syTableView/Images.xcassets/JggIcon/14.imageset/14.jpg -------------------------------------------------------------------------------- /syTableView/Images.xcassets/JggIcon/15.imageset/15.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/HEAD/syTableView/Images.xcassets/JggIcon/15.imageset/15.jpg -------------------------------------------------------------------------------- /syTableView/Images.xcassets/JggIcon/16.imageset/16.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/HEAD/syTableView/Images.xcassets/JggIcon/16.imageset/16.jpg -------------------------------------------------------------------------------- /syTableView/Images.xcassets/JggIcon/17.imageset/17.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/HEAD/syTableView/Images.xcassets/JggIcon/17.imageset/17.jpg -------------------------------------------------------------------------------- /syTableView/Images.xcassets/JggIcon/18.imageset/18.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/HEAD/syTableView/Images.xcassets/JggIcon/18.imageset/18.jpg -------------------------------------------------------------------------------- /syTableView/Images.xcassets/JggIcon/19.imageset/19.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/HEAD/syTableView/Images.xcassets/JggIcon/19.imageset/19.jpg -------------------------------------------------------------------------------- /syTableView/Images.xcassets/JggIcon/20.imageset/20.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/HEAD/syTableView/Images.xcassets/JggIcon/20.imageset/20.jpg -------------------------------------------------------------------------------- /syTableView/Images.xcassets/JggIcon/21.imageset/21.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/HEAD/syTableView/Images.xcassets/JggIcon/21.imageset/21.jpg -------------------------------------------------------------------------------- /syTableView/Images.xcassets/listIcon/wallet_trade.imageset/wallet_trade@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/HEAD/syTableView/Images.xcassets/listIcon/wallet_trade.imageset/wallet_trade@2x.png -------------------------------------------------------------------------------- /syTableView/Images.xcassets/listIcon/wallet_trade.imageset/wallet_trade@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/HEAD/syTableView/Images.xcassets/listIcon/wallet_trade.imageset/wallet_trade@3x.png -------------------------------------------------------------------------------- /syTableView/Images.xcassets/listIcon/my_laapp_icon.imageset/my_laapp_icon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/HEAD/syTableView/Images.xcassets/listIcon/my_laapp_icon.imageset/my_laapp_icon@2x.png -------------------------------------------------------------------------------- /syTableView/Images.xcassets/listIcon/my_laapp_icon.imageset/my_laapp_icon@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/HEAD/syTableView/Images.xcassets/listIcon/my_laapp_icon.imageset/my_laapp_icon@3x.png -------------------------------------------------------------------------------- /syTableView/Images.xcassets/listIcon/my_wallet_icon.imageset/my_wallet_icon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/HEAD/syTableView/Images.xcassets/listIcon/my_wallet_icon.imageset/my_wallet_icon@2x.png -------------------------------------------------------------------------------- /syTableView/Images.xcassets/listIcon/my_wallet_icon.imageset/my_wallet_icon@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/HEAD/syTableView/Images.xcassets/listIcon/my_wallet_icon.imageset/my_wallet_icon@3x.png -------------------------------------------------------------------------------- /syTableView/Images.xcassets/listIcon/my_setting_icon.imageset/my_setting_icon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/HEAD/syTableView/Images.xcassets/listIcon/my_setting_icon.imageset/my_setting_icon@2x.png -------------------------------------------------------------------------------- /syTableView/Images.xcassets/listIcon/my_setting_icon.imageset/my_setting_icon@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/HEAD/syTableView/Images.xcassets/listIcon/my_setting_icon.imageset/my_setting_icon@3x.png -------------------------------------------------------------------------------- /syTableView/Images.xcassets/listIcon/my_bookmark_icon.imageset/my_bookmark_icon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/HEAD/syTableView/Images.xcassets/listIcon/my_bookmark_icon.imageset/my_bookmark_icon@2x.png -------------------------------------------------------------------------------- /syTableView/Images.xcassets/listIcon/my_bookmark_icon.imageset/my_bookmark_icon@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/HEAD/syTableView/Images.xcassets/listIcon/my_bookmark_icon.imageset/my_bookmark_icon@3x.png -------------------------------------------------------------------------------- /syTableView/Images.xcassets/listIcon/my_download_icon.imageset/my_download_icon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/HEAD/syTableView/Images.xcassets/listIcon/my_download_icon.imageset/my_download_icon@2x.png -------------------------------------------------------------------------------- /syTableView/Images.xcassets/listIcon/my_download_icon.imageset/my_download_icon@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/HEAD/syTableView/Images.xcassets/listIcon/my_download_icon.imageset/my_download_icon@3x.png -------------------------------------------------------------------------------- /syTableView/Images.xcassets/listIcon/my_privilege_icon.imageset/my_privilege_icon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/HEAD/syTableView/Images.xcassets/listIcon/my_privilege_icon.imageset/my_privilege_icon@2x.png -------------------------------------------------------------------------------- /syTableView/Images.xcassets/listIcon/my_privilege_icon.imageset/my_privilege_icon@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/HEAD/syTableView/Images.xcassets/listIcon/my_privilege_icon.imageset/my_privilege_icon@3x.png -------------------------------------------------------------------------------- /syTableView/Images.xcassets/listIcon/my_photo_logged_in.imageset/my_photo_logged_in@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/HEAD/syTableView/Images.xcassets/listIcon/my_photo_logged_in.imageset/my_photo_logged_in@2x.png -------------------------------------------------------------------------------- /syTableView/Images.xcassets/listIcon/my_photo_logged_in.imageset/my_photo_logged_in@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/HEAD/syTableView/Images.xcassets/listIcon/my_photo_logged_in.imageset/my_photo_logged_in@3x.png -------------------------------------------------------------------------------- /syTableView/Images.xcassets/listIcon/wallet_paysecurity.imageset/wallet_paysecurity@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/HEAD/syTableView/Images.xcassets/listIcon/wallet_paysecurity.imageset/wallet_paysecurity@2x.png -------------------------------------------------------------------------------- /syTableView/Images.xcassets/listIcon/wallet_paysecurity.imageset/wallet_paysecurity@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/HEAD/syTableView/Images.xcassets/listIcon/wallet_paysecurity.imageset/wallet_paysecurity@3x.png -------------------------------------------------------------------------------- /syTableView/Images.xcassets/listIcon/my_notification_icon.imageset/my_notification_icon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/HEAD/syTableView/Images.xcassets/listIcon/my_notification_icon.imageset/my_notification_icon@2x.png -------------------------------------------------------------------------------- /syTableView/Images.xcassets/listIcon/my_notification_icon.imageset/my_notification_icon@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/HEAD/syTableView/Images.xcassets/listIcon/my_notification_icon.imageset/my_notification_icon@3x.png -------------------------------------------------------------------------------- /syTableView.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /syTableView.xcodeproj/project.xcworkspace/xcuserdata/shiyuan.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/HEAD/syTableView.xcodeproj/project.xcworkspace/xcuserdata/shiyuan.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /syTableView/Images.xcassets/listIcon/toolbar_goforward_normal.imageset/toolbar_goforward_normal@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/HEAD/syTableView/Images.xcassets/listIcon/toolbar_goforward_normal.imageset/toolbar_goforward_normal@2x.png -------------------------------------------------------------------------------- /syTableView/Images.xcassets/listIcon/toolbar_goforward_normal.imageset/toolbar_goforward_normal@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/HEAD/syTableView/Images.xcassets/listIcon/toolbar_goforward_normal.imageset/toolbar_goforward_normal@3x.png -------------------------------------------------------------------------------- /syTableView/Images.xcassets/listIcon/pixel_search_share_friends.imageset/pixel_search_share_friends@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/HEAD/syTableView/Images.xcassets/listIcon/pixel_search_share_friends.imageset/pixel_search_share_friends@2x.png -------------------------------------------------------------------------------- /syTableView/Images.xcassets/listIcon/toolbar_goforward_highlighted.imageset/toolbar_goforward_highlighted@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/HEAD/syTableView/Images.xcassets/listIcon/toolbar_goforward_highlighted.imageset/toolbar_goforward_highlighted@2x.png -------------------------------------------------------------------------------- /syTableView/Images.xcassets/listIcon/toolbar_goforward_highlighted.imageset/toolbar_goforward_highlighted@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/HEAD/syTableView/Images.xcassets/listIcon/toolbar_goforward_highlighted.imageset/toolbar_goforward_highlighted@3x.png -------------------------------------------------------------------------------- /syTableView/Images.xcassets/listIcon/personalcenter_tab_icon_selected.imageset/personalcenter_tab_icon_selected@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/HEAD/syTableView/Images.xcassets/listIcon/personalcenter_tab_icon_selected.imageset/personalcenter_tab_icon_selected@2x.png -------------------------------------------------------------------------------- /syTableView/Images.xcassets/listIcon/personalcenter_tab_icon_selected.imageset/personalcenter_tab_icon_selected@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/HEAD/syTableView/Images.xcassets/listIcon/personalcenter_tab_icon_selected.imageset/personalcenter_tab_icon_selected@3x.png -------------------------------------------------------------------------------- /syTableView/UI/Demo/Model/RowViewModel.m: -------------------------------------------------------------------------------- 1 | // 2 | // RowViewModel.m 3 | // SYTableView 4 | // 5 | // Created by 世缘 on 15/9/3. 6 | // Copyright (c) 2015年 shiyuan. All rights reserved. 7 | // 8 | 9 | #import "RowViewModel.h" 10 | 11 | @implementation RowViewModel 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /syTableView/UI/Demo/Model/JiugonggeModel.m: -------------------------------------------------------------------------------- 1 | // 2 | // JiugonggeModel.m 3 | // SYTableView 4 | // 5 | // Created by 世缘 on 15/9/3. 6 | // Copyright (c) 2015年 shiyuan. All rights reserved. 7 | // 8 | 9 | #import "JiugonggeModel.h" 10 | 11 | @implementation JiugonggeModel 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /syTableView/SYTableView/SYTableViewEntity.m: -------------------------------------------------------------------------------- 1 | // 2 | // SYTableViewEntity.m 3 | // SyUtils 4 | // 5 | // Created by 世缘 on 15/8/17. 6 | // Copyright (c) 2015年 shiyuan. All rights reserved. 7 | // 8 | 9 | #import "SYTableViewEntity.h" 10 | 11 | @implementation SYTableViewEntity 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /syTableView/UI/Demo/View/TestView.h: -------------------------------------------------------------------------------- 1 | // 2 | // TestView.h 3 | // SYTableView 4 | // 5 | // Created by 世缘 on 15/9/3. 6 | // Copyright (c) 2015年 shiyuan. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface TestView : UIView 12 | @property (nonatomic,strong) UILabel *lblText; 13 | @end 14 | -------------------------------------------------------------------------------- /syTableView/UI/Demo/ViewController/RowViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // RowViewController.h 3 | // SYTableView 4 | // 5 | // Created by 世缘 on 15/9/3. 6 | // Copyright (c) 2015年 shiyuan. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface RowViewController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /syTableView/UI/Demo/ViewController/DemoViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // DemoViewController.h 3 | // SYTableView 4 | // 5 | // Created by 世缘 on 15/9/3. 6 | // Copyright (c) 2015年 shiyuan. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface DemoViewController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /syTableView/UI/Demo/ViewController/DynamicViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // DynamicViewController.h 3 | // SYTableView 4 | // 5 | // Created by 世缘 on 15/9/3. 6 | // Copyright (c) 2015年 shiyuan. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface DynamicViewController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /syTableView/UI/Demo/ViewController/SectionViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // SectionViewController.h 3 | // SYTableView 4 | // 5 | // Created by 世缘 on 15/9/3. 6 | // Copyright (c) 2015年 shiyuan. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface SectionViewController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /syTableView/UI/Demo/ViewController/JiugonggeViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // JiugonggeViewController.h 3 | // SYTableView 4 | // 5 | // Created by 世缘 on 15/9/3. 6 | // Copyright (c) 2015年 shiyuan. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface JiugonggeViewController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /syTableView/AppDelegate/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // SYTableView 4 | // 5 | // Created by 世缘 on 15/9/3. 6 | // Copyright (c) 2015年 shiyuan. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /syTableView/UI/Demo/DataManager/DemoDataManager.h: -------------------------------------------------------------------------------- 1 | // 2 | // DemoDataManager.h 3 | // SYTableView 4 | // 5 | // Created by 世缘 on 15/9/3. 6 | // Copyright (c) 2015年 shiyuan. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface DemoDataManager : NSObject 12 | + (NSArray *)getRowViewData; 13 | + (NSArray *)getJiugonggeData; 14 | @end 15 | -------------------------------------------------------------------------------- /syTableView/UI/Demo/View/JiugonggeView.h: -------------------------------------------------------------------------------- 1 | // 2 | // JiugonggeView.h 3 | // SYTableView 4 | // 5 | // Created by 世缘 on 15/9/3. 6 | // Copyright (c) 2015年 shiyuan. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface JiugonggeView : UIView 12 | @property (nonatomic,strong) UIButton *btn_avatar; 13 | @property (nonatomic,strong) UILabel *lbl_title; 14 | @end 15 | -------------------------------------------------------------------------------- /syTableView/SYTableView/SYSectionEntity.h: -------------------------------------------------------------------------------- 1 | // 2 | // SYSectionEntity.h 3 | // SyUtils 4 | // 5 | // Created by 世缘 on 15/8/19. 6 | // Copyright (c) 2015年 shiyuan. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface SYSectionEntity : NSObject 12 | @property (nonatomic,strong) id obj; 13 | @property (nonatomic,strong) NSMutableArray *rowArray; 14 | @end 15 | -------------------------------------------------------------------------------- /syTableView/UI/Demo/Model/JiugonggeModel.h: -------------------------------------------------------------------------------- 1 | // 2 | // JiugonggeModel.h 3 | // SYTableView 4 | // 5 | // Created by 世缘 on 15/9/3. 6 | // Copyright (c) 2015年 shiyuan. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface JiugonggeModel : NSObject 12 | @property (nonatomic,strong) NSString *title; 13 | @property (nonatomic,strong) NSString *icon; 14 | @end 15 | -------------------------------------------------------------------------------- /syTableView/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // SYTableView 4 | // 5 | // Created by 世缘 on 15/9/3. 6 | // Copyright (c) 2015年 shiyuan. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AppDelegate.h" 11 | 12 | int main(int argc, char * argv[]) { 13 | @autoreleasepool { 14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /syTableView/UI/Demo/Model/RowViewModel.h: -------------------------------------------------------------------------------- 1 | // 2 | // RowViewModel.h 3 | // SYTableView 4 | // 5 | // Created by 世缘 on 15/9/3. 6 | // Copyright (c) 2015年 shiyuan. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface RowViewModel : NSObject 12 | @property (nonatomic,retain) NSString *string_icon; 13 | @property (nonatomic,retain) NSString *string_title; 14 | @end 15 | -------------------------------------------------------------------------------- /syTableView/SYTableView/SYSectionEntity.m: -------------------------------------------------------------------------------- 1 | // 2 | // SYSectionEntity.m 3 | // SyUtils 4 | // 5 | // Created by 世缘 on 15/8/19. 6 | // Copyright (c) 2015年 shiyuan. All rights reserved. 7 | // 8 | 9 | #import "SYSectionEntity.h" 10 | 11 | @implementation SYSectionEntity 12 | - (id)init{ 13 | if (self = [super init]) { 14 | _rowArray = [[NSMutableArray alloc]init]; 15 | } 16 | return self; 17 | } 18 | @end 19 | -------------------------------------------------------------------------------- /syTableView/UI/Demo/View/RowView.h: -------------------------------------------------------------------------------- 1 | // 2 | // RowView.h 3 | // SYTableView 4 | // 5 | // Created by 世缘 on 15/9/3. 6 | // Copyright (c) 2015年 shiyuan. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface RowView : UIView 12 | @property(nonatomic,retain) UIButton *btn_avatar; 13 | @property(nonatomic,retain) UILabel *lbl_title; 14 | @property(nonatomic,retain) UIImageView *img_arrow; 15 | @end 16 | -------------------------------------------------------------------------------- /syTableView/Images.xcassets/JggIcon/1.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "1.jpg" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /syTableView/Images.xcassets/JggIcon/10.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "10.jpg" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /syTableView/Images.xcassets/JggIcon/11.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "11.jpg" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /syTableView/Images.xcassets/JggIcon/12.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "12.jpg" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /syTableView/Images.xcassets/JggIcon/13.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "13.jpg" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /syTableView/Images.xcassets/JggIcon/14.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "14.jpg" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /syTableView/Images.xcassets/JggIcon/15.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "15.jpg" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /syTableView/Images.xcassets/JggIcon/16.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "16.jpg" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /syTableView/Images.xcassets/JggIcon/17.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "17.jpg" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /syTableView/Images.xcassets/JggIcon/18.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "18.jpg" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /syTableView/Images.xcassets/JggIcon/19.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "19.jpg" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /syTableView/Images.xcassets/JggIcon/2.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "2.jpg" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /syTableView/Images.xcassets/JggIcon/20.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "20.jpg" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /syTableView/Images.xcassets/JggIcon/21.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "21.jpg" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /syTableView/Images.xcassets/JggIcon/3.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "3.jpg" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /syTableView/Images.xcassets/JggIcon/4.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "4.jpg" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /syTableView/Images.xcassets/JggIcon/5.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "5.jpg" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /syTableView/Images.xcassets/JggIcon/6.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "6.jpg" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /syTableView/Images.xcassets/JggIcon/7.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "7.jpg" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /syTableView/Images.xcassets/JggIcon/8.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "8.jpg" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /syTableView/Images.xcassets/JggIcon/9.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "9.jpg" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /syTableView/SYTableView/SYTableViewHeader.h: -------------------------------------------------------------------------------- 1 | // 2 | // SYTableViewHeader.h 3 | // GoShopping 4 | // 5 | // Created by 世缘 on 15/8/30. 6 | // Copyright (c) 2015年 shiyuan. All rights reserved. 7 | // 8 | 9 | 10 | 11 | #ifndef GoShopping_SYTableViewHeader_h 12 | #define GoShopping_SYTableViewHeader_h 13 | 14 | #import "SYSectionEntity.h" 15 | #import "SYTableView.h" 16 | #import "SYTableViewCell.h" 17 | #import "SYTableViewEntity.h" 18 | 19 | #endif 20 | 21 | 22 | -------------------------------------------------------------------------------- /syTableView/SYTableView/SYTableViewEntity.h: -------------------------------------------------------------------------------- 1 | // 2 | // SYTableViewEntity.h 3 | // SyUtils 4 | // 5 | // Created by 世缘 on 15/8/17. 6 | // Copyright (c) 2015年 shiyuan. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | @interface SYTableViewEntity : NSObject 13 | @property (nonatomic,strong) UIView *customView; 14 | @property (nonatomic,strong) id entity; 15 | @property (nonatomic,strong) NSIndexPath *indexPath; 16 | @end 17 | -------------------------------------------------------------------------------- /syTableView/Images.xcassets/listIcon/pixel_search_share_friends.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x", 10 | "filename" : "pixel_search_share_friends@2x.png" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /syTableView/Images.xcassets/listIcon/wallet_trade.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x", 10 | "filename" : "wallet_trade@2x.png" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x", 15 | "filename" : "wallet_trade@3x.png" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /syTableView/Images.xcassets/listIcon/my_laapp_icon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x", 10 | "filename" : "my_laapp_icon@2x.png" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x", 15 | "filename" : "my_laapp_icon@3x.png" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /syTableView/Images.xcassets/listIcon/my_wallet_icon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x", 10 | "filename" : "my_wallet_icon@2x.png" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x", 15 | "filename" : "my_wallet_icon@3x.png" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /syTableView/Images.xcassets/listIcon/my_setting_icon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x", 10 | "filename" : "my_setting_icon@2x.png" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x", 15 | "filename" : "my_setting_icon@3x.png" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /syTableView/Images.xcassets/listIcon/my_bookmark_icon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x", 10 | "filename" : "my_bookmark_icon@2x.png" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x", 15 | "filename" : "my_bookmark_icon@3x.png" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /syTableView/Images.xcassets/listIcon/my_download_icon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x", 10 | "filename" : "my_download_icon@2x.png" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x", 15 | "filename" : "my_download_icon@3x.png" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /syTableView/Images.xcassets/listIcon/my_privilege_icon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x", 10 | "filename" : "my_privilege_icon@2x.png" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x", 15 | "filename" : "my_privilege_icon@3x.png" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /syTableView/Images.xcassets/listIcon/my_photo_logged_in.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x", 10 | "filename" : "my_photo_logged_in@2x.png" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x", 15 | "filename" : "my_photo_logged_in@3x.png" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /syTableView/Images.xcassets/listIcon/wallet_paysecurity.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x", 10 | "filename" : "wallet_paysecurity@2x.png" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x", 15 | "filename" : "wallet_paysecurity@3x.png" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /syTableView/Images.xcassets/listIcon/my_notification_icon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x", 10 | "filename" : "my_notification_icon@2x.png" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x", 15 | "filename" : "my_notification_icon@3x.png" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /syTableView/Images.xcassets/listIcon/toolbar_goforward_normal.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x", 10 | "filename" : "toolbar_goforward_normal@2x.png" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x", 15 | "filename" : "toolbar_goforward_normal@3x.png" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /syTableView/Images.xcassets/listIcon/toolbar_goforward_highlighted.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x", 10 | "filename" : "toolbar_goforward_highlighted@2x.png" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x", 15 | "filename" : "toolbar_goforward_highlighted@3x.png" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /syTableView/Images.xcassets/listIcon/personalcenter_tab_icon_selected.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x", 10 | "filename" : "personalcenter_tab_icon_selected@2x.png" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x", 15 | "filename" : "personalcenter_tab_icon_selected@3x.png" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /syTableView.xcodeproj/xcuserdata/shiyuan.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | SYTableView.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | DC54136E1B98704A008CC92F 16 | 17 | primary 18 | 19 | 20 | DC5413871B98704A008CC92F 21 | 22 | primary 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /syTableView/UI/Demo/View/TestView.m: -------------------------------------------------------------------------------- 1 | // 2 | // TestView.m 3 | // SYTableView 4 | // 5 | // Created by 世缘 on 15/9/3. 6 | // Copyright (c) 2015年 shiyuan. All rights reserved. 7 | // 8 | 9 | #import "TestView.h" 10 | 11 | @implementation TestView 12 | -(id)initWithFrame:(CGRect)frame{ 13 | if (self = [super initWithFrame:frame]) { 14 | _lblText = [[UILabel alloc]init]; 15 | _lblText.frame = CGRectMake(10, 10, 100, 30); 16 | _lblText.text = @"测试"; 17 | _lblText.textColor = [UIColor orangeColor]; 18 | [self addSubview:_lblText]; 19 | 20 | UIView *line = [[UIView alloc]init]; 21 | line.frame = CGRectMake(0, frame.size.height-1, frame.size.width, 0.5); 22 | line.backgroundColor = [UIColor grayColor]; 23 | [self addSubview:line]; 24 | } 25 | return self; 26 | } 27 | @end 28 | -------------------------------------------------------------------------------- /syTableView/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "29x29", 11 | "scale" : "3x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "40x40", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "40x40", 21 | "scale" : "3x" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "size" : "60x60", 26 | "scale" : "2x" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "size" : "60x60", 31 | "scale" : "3x" 32 | } 33 | ], 34 | "info" : { 35 | "version" : 1, 36 | "author" : "xcode" 37 | } 38 | } -------------------------------------------------------------------------------- /SYTableViewTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | shiyuan.$(PRODUCT_NAME:rfc1034identifier) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /syTableView/UI/Demo/View/JiugonggeView.m: -------------------------------------------------------------------------------- 1 | // 2 | // JiugonggeView.m 3 | // SYTableView 4 | // 5 | // Created by 世缘 on 15/9/3. 6 | // Copyright (c) 2015年 shiyuan. All rights reserved. 7 | // 8 | 9 | #import "JiugonggeView.h" 10 | 11 | @implementation JiugonggeView 12 | -(id)initWithFrame:(CGRect)frame{ 13 | if (self = [super initWithFrame:frame]) { 14 | _btn_avatar = [[UIButton alloc]init]; 15 | _btn_avatar.frame = CGRectMake(0, 0, frame.size.width, frame.size.height-20); 16 | [self addSubview:_btn_avatar]; 17 | 18 | _lbl_title = [[UILabel alloc]init]; 19 | _lbl_title.frame = CGRectMake(0, _btn_avatar.frame.origin.y+_btn_avatar.frame.size.height, _btn_avatar.frame.size.width, 20); 20 | _lbl_title.text = @"测试"; 21 | _lbl_title.textAlignment = NSTextAlignmentCenter; 22 | [self addSubview:_lbl_title]; 23 | 24 | } 25 | return self; 26 | } 27 | @end 28 | -------------------------------------------------------------------------------- /SYTableViewTests/SYTableViewTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // SYTableViewTests.m 3 | // SYTableViewTests 4 | // 5 | // Created by 世缘 on 15/9/3. 6 | // Copyright (c) 2015年 shiyuan. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | @interface SYTableViewTests : XCTestCase 13 | 14 | @end 15 | 16 | @implementation SYTableViewTests 17 | 18 | - (void)setUp { 19 | [super setUp]; 20 | // Put setup code here. This method is called before the invocation of each test method in the class. 21 | } 22 | 23 | - (void)tearDown { 24 | // Put teardown code here. This method is called after the invocation of each test method in the class. 25 | [super tearDown]; 26 | } 27 | 28 | - (void)testExample { 29 | // This is an example of a functional test case. 30 | XCTAssert(YES, @"Pass"); 31 | } 32 | 33 | - (void)testPerformanceExample { 34 | // This is an example of a performance test case. 35 | [self measureBlock:^{ 36 | // Put the code you want to measure the time of here. 37 | }]; 38 | } 39 | 40 | @end 41 | -------------------------------------------------------------------------------- /syTableView/SYTableView/SYTableViewCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // SYTableViewCell.h 3 | // SyUtils 4 | // 5 | // Created by 世缘 on 15/8/17. 6 | // Copyright (c) 2015年 shiyuan. All rights reserved. 7 | // 8 | 9 | #import 10 | #define kTagStart 1000 11 | @class SYTableViewEntity; 12 | 13 | @interface SYTableViewCell : UITableViewCell 14 | @property (nonatomic,assign) CGFloat leftMargin; 15 | @property (nonatomic,strong) NSArray *cellDatas; 16 | @property (nonatomic,assign) NSInteger cellColumnNumber; 17 | 18 | @property (weak, nonatomic) id setupDataTaget; 19 | @property (assign, nonatomic) SEL setupDataAction; 20 | @property (nonatomic, copy) void (^setupDataCallBack)(SYTableViewEntity *); 21 | 22 | - (id)initWithReuseIdentifier:(NSString *) reuseIdentifier 23 | customerViewName:(NSString *) viewName 24 | cellColumnNumber:(NSInteger) columnNumber 25 | leftMargin:(CGFloat) leftMargin 26 | apartMargin:(CGFloat) apartMargin 27 | width:(CGFloat) width 28 | height:(CGFloat) height; 29 | 30 | -(id)loadJiugonggeCellData:(NSIndexPath *)indexPath cellDatas:(NSArray *)datas; 31 | @end 32 | -------------------------------------------------------------------------------- /syTableView/UI/Demo/ViewController/DynamicViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // DynamicViewController.m 3 | // SYTableView 4 | // 5 | // Created by 世缘 on 15/9/3. 6 | // Copyright (c) 2015年 shiyuan. All rights reserved. 7 | // 8 | 9 | #import "DynamicViewController.h" 10 | #import "SYTableViewHeader.h" 11 | #import "TestView.h" 12 | 13 | @implementation DynamicViewController 14 | - (void)viewDidLoad{ 15 | [super viewDidLoad]; 16 | self.automaticallyAdjustsScrollViewInsets = NO; 17 | self.view.backgroundColor = [UIColor whiteColor]; 18 | self.title = @"动态高度TableView"; 19 | 20 | 21 | //动态高度 22 | CGRect tbvFrame = CGRectMake(0, 60, self.view.frame.size.width, self.view.frame.size.height-60); 23 | NSString *viewName = NSStringFromClass([TestView class]); 24 | SYTableView *tbv = [[SYTableView alloc]initWithFrame:tbvFrame customerViewName:viewName columnNumber:1 target:self action:@selector(setupData)]; 25 | tbv.arrayDatas = [NSMutableArray arrayWithObjects:@"",@"",@"", nil]; 26 | tbv.rowHeight = 40; 27 | tbv.cellHeightArrays = [NSArray arrayWithObjects:@"45",@"55",@"65", nil]; 28 | [tbv reloadData]; 29 | [self.view addSubview:tbv]; 30 | } 31 | @end 32 | -------------------------------------------------------------------------------- /syTableView.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |s| 2 | s.name = "syTableView" 3 | s.version = "1.0.0" 4 | s.summary = "A marquee view used on iOS." 5 | s.description = <<-DESC 6 | It is a marquee view used on iOS, which implement by Objective-C. 7 | DESC 8 | s.homepage = "https://github.com/shiyuan17/syTableView" 9 | # s.screenshots = "https://github.com/shiyuan17/syTableView/blob/master/iosTableView.jpg", "https://github.com/shiyuan17/syTableView/blob/master/iosTableView1.png" 10 | s.license = 'MIT' 11 | s.author = { "黄世源" => "1213423761@qq.com" } 12 | s.source = { :git => "https://github.com/shiyuan17/syTableView.git", :tag => s.version.to_s } 13 | # s.social_media_url = 'https://twitter.com/NAME' 14 | 15 | s.platform = :ios, '5.0' 16 | # s.ios.deployment_target = '5.0' 17 | # s.osx.deployment_target = '10.7' 18 | s.requires_arc = true 19 | 20 | s.source_files = 'syTableView/*' 21 | # s.resources = 'Assets' 22 | 23 | # s.ios.exclude_files = 'Classes/osx' 24 | # s.osx.exclude_files = 'Classes/ios' 25 | # s.public_header_files = 'Classes/**/*.h' 26 | s.frameworks = 'Foundation', 'UIKit' 27 | 28 | end -------------------------------------------------------------------------------- /syTableView/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | shiyuan.$(PRODUCT_NAME:rfc1034identifier) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | LSRequiresIPhoneOS 24 | 25 | UILaunchStoryboardName 26 | LaunchScreen 27 | UIMainStoryboardFile 28 | Main 29 | UIRequiredDeviceCapabilities 30 | 31 | armv7 32 | 33 | UISupportedInterfaceOrientations 34 | 35 | UIInterfaceOrientationPortrait 36 | UIInterfaceOrientationLandscapeLeft 37 | UIInterfaceOrientationLandscapeRight 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /syTableView/UI/Demo/ViewController/SectionViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // SectionViewController.m 3 | // SYTableView 4 | // 5 | // Created by 世缘 on 15/9/3. 6 | // Copyright (c) 2015年 shiyuan. All rights reserved. 7 | // 8 | 9 | #import "SectionViewController.h" 10 | //引入 11 | #import "SYTableViewHeader.h" 12 | #import "TestView.h" 13 | @implementation SectionViewController 14 | - (void)viewDidLoad{ 15 | [super viewDidLoad]; 16 | self.automaticallyAdjustsScrollViewInsets = NO; 17 | self.view.backgroundColor = [UIColor whiteColor]; 18 | self.title = @"section设置"; 19 | 20 | CGRect tbvFrame = CGRectMake(0, 60, self.view.frame.size.width, self.view.frame.size.height); 21 | NSString *viewName = NSStringFromClass([TestView class]); 22 | 23 | //初始化数据 24 | NSMutableArray *array = [[NSMutableArray alloc]init]; 25 | for (int i=0; i<10; i++) { 26 | //SYSectionEntity 为载体 obj为sectionHeader的对应数据 27 | //rowArray为section下面的行数据 28 | SYSectionEntity *ent = [[SYSectionEntity alloc]init]; 29 | ent.obj = nil; 30 | for (int j=0; j<3; j++) { 31 | [ent.rowArray addObject:@""]; 32 | } 33 | [array addObject:ent]; 34 | } 35 | 36 | SYTableView *tbv = [[SYTableView alloc]initWithFrame:tbvFrame customerViewName:viewName setupData:^(SYTableViewEntity *entity) { 37 | }]; 38 | tbv.isSectionStickyHeader = NO;//section头部是否冻结 39 | tbv.rowHeight = 50; 40 | tbv.sectionHeaderHeight = 10; 41 | tbv.arrayDatas = [NSMutableArray arrayWithArray:array]; 42 | [self.view addSubview:tbv]; 43 | } 44 | 45 | 46 | @end 47 | -------------------------------------------------------------------------------- /syTableView/UI/Demo/View/RowView.m: -------------------------------------------------------------------------------- 1 | // 2 | // RowView.m 3 | // SYTableView 4 | // 5 | // Created by 世缘 on 15/9/3. 6 | // Copyright (c) 2015年 shiyuan. All rights reserved. 7 | // 8 | 9 | #import "RowView.h" 10 | #define RGB16(rgbValue) [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 green:((float)((rgbValue & 0xFF00) >> 8))/255.0 blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0] 11 | 12 | @implementation RowView 13 | -(id)initWithFrame:(CGRect)frame{ 14 | if (self = [super initWithFrame:frame]) { 15 | UIView *headLine = [[UIView alloc]init]; 16 | headLine.frame = CGRectMake(0, 0, frame.size.width, 0.5); 17 | headLine.backgroundColor = RGB16(0xc8c7cc); 18 | [self addSubview:headLine]; 19 | 20 | _btn_avatar = [[UIButton alloc]init]; 21 | _btn_avatar.frame = CGRectMake(18, 15, 20, 20); 22 | [self addSubview:_btn_avatar]; 23 | 24 | _lbl_title = [[UILabel alloc]init]; 25 | CGFloat lbl_titleX = _btn_avatar.frame.origin.x+_btn_avatar.frame.size.width+20; 26 | _lbl_title.frame = CGRectMake(lbl_titleX, 17, 205, 15); 27 | _lbl_title.textColor = RGB16(0x000000); 28 | _lbl_title.backgroundColor = [UIColor clearColor]; 29 | [self addSubview:_lbl_title]; 30 | 31 | _img_arrow = [[UIImageView alloc]init]; 32 | CGFloat img_arrowX = frame.size.width-30; 33 | _img_arrow.frame = CGRectMake(img_arrowX, 16, 20, 20); 34 | _img_arrow.image = [UIImage imageNamed:@"toolbar_goforward_normal"]; 35 | [self addSubview:_img_arrow]; 36 | 37 | } 38 | return self; 39 | } 40 | @end 41 | -------------------------------------------------------------------------------- /syTableView/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | SYTableView 快速tableView创建 2 | =========================== 3 | 功能简介 4 | ======== 5 | 妈妈再也不用担心我写重复性的代码了,提供快速创建tableView的方式 6 | 1.方便快捷的创建普通型tableView 7 | 2.提供九宫格灵活控制 8 | 3.section创建 9 | 4.动态高度 10 | 11 | ###如何使用SYTableView 12 | 使用sytableview快速创建只需要三步,1.引入文件 2.初始化 3.设置数据 13 | 1.将SYTableView/SYTableView文件夹中的所有文件拽入项目中 14 | 2.导入头文件: 15 | #import "SYTableViewHeader.h" 16 | 17 | 1.普通弄tableView创建如下: 18 | 效果图: 19 | ![](https://github.com/shiyuan17/syTableView/blob/master/tableview.jpeg) 20 | 初始化如下: 21 | ``` objc 22 | //1.引入 23 | #import "SYTableViewHeader.h" 24 | //设置tableFrame 25 | CGRect tbvFrame = CGRectMake(0, 60, self.view.frame.size.width, self.view.frame.size.height); 26 | //获取自定义view的className 27 | NSString *rowViewClass = NSStringFromClass([RowView class]); 28 | //2.初始化tableView 29 | SYTableView *rowTbv = [[SYTableView alloc]initWithFrame:tbvFrame customerViewName:rowViewClass target:self action:@selector(rowListDataSetup:)]; 30 | //指定数据 31 | rowTbv.arrayDatas = [NSMutableArray arrayWithArray:[DemoDataManager getRowViewData]]; 32 | rowTbv.rowHeight = 45;//指定行高 33 | [self.view addSubview:rowTbv]; 34 | } 35 | ``` 36 | 37 | 2.设置table数据 38 | ``` objc 39 | //3.为tableView设置数据 40 | - (void)rowListDataSetup:(SYTableViewEntity *)ent{ 41 | RowView *rowView = (RowView *)ent.customView;//取出自定义view 42 | RowViewModel *model = ent.entity;//取出数据中的实体 43 | //赋值 44 | [rowView.btn_avatar setImage:[UIImage imageNamed:model.string_icon] forState:UIControlStateNormal]; 45 | rowView.lbl_title.text = model.string_title; 46 | ``` 47 | 48 | 更多的使用方法尽在demo中 49 | 如有遇到问题或者有好的建议,欢迎联系我 50 | author:shiyuan 51 | 联系方式:qq:1213423761 mail:1213423761@qq.com 52 | -------------------------------------------------------------------------------- /syTableView.xcodeproj/project.xcworkspace/xcshareddata/SYTableView.xccheckout: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDESourceControlProjectFavoriteDictionaryKey 6 | 7 | IDESourceControlProjectIdentifier 8 | D7A0E546-9301-47AE-894E-56C16A2083F3 9 | IDESourceControlProjectName 10 | SYTableView 11 | IDESourceControlProjectOriginsDictionary 12 | 13 | 3192599C1C6989C78DDC1E50A3A04D7EEB1278B9 14 | https://github.com/shiyuan17/SYJiugonggeTableView.git 15 | 16 | IDESourceControlProjectPath 17 | SYTableView.xcodeproj 18 | IDESourceControlProjectRelativeInstallPathDictionary 19 | 20 | 3192599C1C6989C78DDC1E50A3A04D7EEB1278B9 21 | ../.. 22 | 23 | IDESourceControlProjectURL 24 | https://github.com/shiyuan17/SYJiugonggeTableView.git 25 | IDESourceControlProjectVersion 26 | 111 27 | IDESourceControlProjectWCCIdentifier 28 | 3192599C1C6989C78DDC1E50A3A04D7EEB1278B9 29 | IDESourceControlProjectWCConfigurations 30 | 31 | 32 | IDESourceControlRepositoryExtensionIdentifierKey 33 | public.vcs.git 34 | IDESourceControlWCCIdentifierKey 35 | 3192599C1C6989C78DDC1E50A3A04D7EEB1278B9 36 | IDESourceControlWCCName 37 | SYJiugonggeTableView 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /syTableView/UI/Demo/DataManager/DemoDataManager.m: -------------------------------------------------------------------------------- 1 | // 2 | // DemoDataManager.m 3 | // SYTableView 4 | // 5 | // Created by 世缘 on 15/9/3. 6 | // Copyright (c) 2015年 shiyuan. All rights reserved. 7 | // 8 | 9 | #import "DemoDataManager.h" 10 | #import "RowViewModel.h" 11 | #import "JiugonggeModel.h" 12 | 13 | @implementation DemoDataManager 14 | + (NSArray *)getRowViewData{ 15 | NSMutableArray *results = [NSMutableArray array]; 16 | NSArray *arrayIcon = [NSArray arrayWithObjects: 17 | @"personalcenter_tab_icon_selected",//用户中心 18 | @"my_privilege_icon",//vip专区 19 | @"my_wallet_icon",//我的钱包 20 | @"my_notification_icon",//我的消息 21 | @"my_laapp_icon",//我的订阅 22 | @"my_bookmark_icon",//书签/历史 23 | @"my_download_icon",//下载/离线 24 | @"wallet_paysecurity",//安全检查 25 | @"wallet_trade",//文件管理 26 | @"pixel_search_share_friends",//图片管理 27 | @"my_setting_icon",//设置 28 | nil]; 29 | 30 | NSArray *arrayTitle = [NSArray arrayWithObjects: 31 | @"用户中心", 32 | @"vip专区", 33 | @"我的钱包", 34 | @"我的消息", 35 | @"我的订阅", 36 | @"书签/历史", 37 | @"下载/离线", 38 | @"安全检查", 39 | @"文件管理", 40 | @"图片管理", 41 | @"设置", 42 | nil]; 43 | 44 | for (int i =0; i 2 | 5 | 6 | 8 | 20 | 21 | 22 | 24 | 36 | 37 | 38 | 40 | 52 | 53 | 54 | 56 | 68 | 69 | 70 | 71 | 72 | -------------------------------------------------------------------------------- /syTableView/SYTableView/SYTableView.h: -------------------------------------------------------------------------------- 1 | // 2 | // SYTableView.h 3 | // SyUtils 4 | // 5 | // Created by 世缘 on 15/8/17. 6 | // Copyright (c) 2015年 shiyuan. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "SYTableViewEntity.h" 11 | 12 | typedef void (^setupData)(SYTableViewEntity*); 13 | typedef void (^tableViewSelectedBlock)(NSIndexPath *); 14 | @interface SYTableView : UITableView 15 | @property (nonatomic,strong) UIView *sectionHeaderView;/**<头部sectionView*/ 16 | 17 | @property (nonatomic,strong) NSString *customerViewName;/**<自定义view名称*/ 18 | @property (nonatomic,strong) NSMutableArray *arrayDatas;/**<数据源数据*/ 19 | @property (nonatomic,strong) NSArray *cellHeightArrays;/**cell动态高度数据*/ 20 | @property (weak, nonatomic) id target; 21 | @property (assign, nonatomic) SEL setupDataAction; 22 | @property (nonatomic, copy) void (^setupDataCallBack)(SYTableViewEntity *); 23 | @property (nonatomic,copy) tableViewSelectedBlock selectBlock; 24 | @property (nonatomic,assign) SEL selectedMethod; 25 | 26 | @property (nonatomic,assign) NSInteger columnNumber;/**<列数*/ 27 | @property (nonatomic,assign) CGFloat leftMargin;/**<左边距*/ 28 | @property (nonatomic,assign) CGFloat apartMargin;/**<中间间距*/ 29 | @property (nonatomic,assign) CGFloat cellWidth;//** 12 | // objc_msgSend 13 | #define msgSend(...) ((void (*)(void *, SEL, NSObject *))objc_msgSend)(__VA_ARGS__) 14 | #define msgTarget(target) (__bridge void *)(target) 15 | 16 | @implementation SYTableViewCell 17 | @synthesize cellColumnNumber,cellDatas,leftMargin; 18 | 19 | -(id)init{ 20 | if (self = [super init]) { 21 | } 22 | return self; 23 | } 24 | 25 | #pragma mark 初始化cell 26 | - (id)initWithReuseIdentifier:(NSString *) reuseIdentifier 27 | customerViewName:(NSString *) viewName 28 | cellColumnNumber:(NSInteger) columnNumber 29 | leftMargin:(CGFloat) lMargin 30 | apartMargin:(CGFloat) apartMargin 31 | width:(CGFloat) width 32 | height:(CGFloat) height{ 33 | self = [super initWithStyle:UITableViewCellStyleDefault reuseIdentifier:reuseIdentifier]; 34 | if(self){ 35 | leftMargin = lMargin; 36 | self.cellColumnNumber = columnNumber; 37 | for (int i = 0; i= self.cellDatas.count) { 64 | length = self.cellDatas.count - location; 65 | } 66 | NSRange range = NSMakeRange(location, length); 67 | NSArray *rowProducts = [self.cellDatas subarrayWithRange:range]; 68 | [self setRowProducts:rowProducts indexPath:indexPath]; 69 | self.backgroundColor = [UIColor clearColor]; 70 | return self; 71 | } 72 | 73 | #pragma mark 设置cell数据 74 | -(void) setRowProducts:(NSArray *)products indexPath:(NSIndexPath *)indexPath{ 75 | for (int i = 0; iproducts.count - 1) { 79 | view.hidden = YES; 80 | } else { 81 | view.hidden = NO; 82 | SYTableViewEntity *entity = [[SYTableViewEntity alloc]init]; 83 | entity.customView = view; 84 | entity.entity = products[i]; 85 | entity.indexPath=indexPath; 86 | if ([self.setupDataTaget respondsToSelector:self.setupDataAction]) { 87 | msgSend(msgTarget(self.setupDataTaget),self.setupDataAction,entity); 88 | } 89 | if (self.setupDataCallBack) { 90 | self.setupDataCallBack(entity); 91 | } 92 | } 93 | } 94 | } 95 | 96 | - (void)dealloc{ 97 | self.cellDatas = nil; 98 | } 99 | @end 100 | -------------------------------------------------------------------------------- /syTableView/Base.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 20 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /syTableView.xcodeproj/xcuserdata/shiyuan.xcuserdatad/xcschemes/syTableView.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 29 | 35 | 36 | 37 | 38 | 39 | 44 | 45 | 47 | 53 | 54 | 55 | 56 | 57 | 63 | 64 | 65 | 66 | 75 | 77 | 83 | 84 | 85 | 86 | 87 | 88 | 94 | 96 | 102 | 103 | 104 | 105 | 107 | 108 | 111 | 112 | 113 | -------------------------------------------------------------------------------- /syTableView/SYTableView/SYTableView.m: -------------------------------------------------------------------------------- 1 | // 2 | // SYTableView.m 3 | // SyUtils 4 | // 5 | // Created by 世缘 on 15/8/17. 6 | // Copyright (c) 2015年 shiyuan. All rights reserved. 7 | // 8 | 9 | #import "SYTableView.h" 10 | #import "SYTableViewCell.h" 11 | #import "SYSectionEntity.h" 12 | #import 13 | // objc_msgSend 14 | #define msgSend(...) ((void (*)(void *, SEL, NSObject *))objc_msgSend)(__VA_ARGS__) 15 | #define msgTarget(target) (__bridge void *)(target) 16 | @implementation SYTableView 17 | { 18 | BOOL isBlock; 19 | BOOL isSectionData; 20 | } 21 | @synthesize customerViewName,columnNumber; 22 | @synthesize leftMargin,apartMargin,cellWidth; 23 | 24 | - (id)init{ 25 | if (self = [super init]) { 26 | _arrayDatas = [NSMutableArray array]; 27 | _isSectionStickyHeader = YES; 28 | } 29 | return self; 30 | } 31 | 32 | #pragma mark - 单行tableview初始化 sel方法回调 33 | - (id)initWithFrame:(CGRect)frame customerViewName:(NSString *)viewName target:(id)target action:(SEL)action{ 34 | if (self = [super initWithFrame:frame]) { 35 | self.target = target; 36 | self.setupDataAction = action; 37 | self.separatorStyle = UITableViewCellSeparatorStyleNone; 38 | customerViewName = viewName; 39 | columnNumber = 1; 40 | leftMargin = 0; 41 | apartMargin = 0; 42 | self.delegate = self; 43 | self.dataSource = self; 44 | isBlock = NO; 45 | } 46 | return self; 47 | } 48 | 49 | #pragma mark - 单行tableview初始化 block回调 50 | - (id)initWithFrame:(CGRect)frame customerViewName:(NSString *)viewName setupData:(void (^)(SYTableViewEntity *))setupData{ 51 | if (self = [super initWithFrame:frame]) { 52 | customerViewName = viewName; 53 | self.separatorStyle = UITableViewCellSeparatorStyleNone; 54 | columnNumber = 1; 55 | leftMargin = 0; 56 | apartMargin = 0; 57 | self.delegate = self; 58 | self.dataSource = self; 59 | isBlock = YES; 60 | self.setupDataCallBack = setupData; 61 | } 62 | return self; 63 | } 64 | 65 | #pragma mark - 多列tableview初始化 sel回调 66 | - (id)initWithFrame:(CGRect)frame customerViewName:(NSString *)viewName columnNumber:(int)column target:(id)target action:(SEL)action{ 67 | self = [self initWithFrame:frame customerViewName:viewName columnNumber:column leftMargin:5 apartMargin:5 target:target action:action]; 68 | return self; 69 | } 70 | 71 | #pragma mark - 多列tableview初始化 block回调 72 | - (id)initWithFrame:(CGRect)frame customerViewName:(NSString *)viewName columnNumber:(int)column setupData:(void (^)(SYTableViewEntity *))setupData{ 73 | self = [self initWithFrame:frame customerViewName:viewName columnNumber:column leftMargin:5 apartMargin:5 setupData:setupData]; 74 | return self; 75 | } 76 | 77 | #pragma mark - 多列tableview初始化 sel回调 leftMargin margin 78 | - (id)initWithFrame:(CGRect)frame customerViewName:(NSString *)viewName columnNumber:(int)column leftMargin:(CGFloat)lMargin apartMargin:(CGFloat)margin target:(id)target action:(SEL)action{ 79 | if (self = [super initWithFrame:frame]) { 80 | self.target = target; 81 | self.setupDataAction = action; 82 | self.separatorStyle = UITableViewCellSeparatorStyleNone; 83 | 84 | customerViewName = viewName; 85 | columnNumber = column; 86 | leftMargin = lMargin; 87 | apartMargin = margin; 88 | CGFloat tWidth = (self.frame.size.width-(leftMargin*2))-((column-1)*apartMargin); 89 | cellWidth = tWidth/column; 90 | isBlock = NO; 91 | self.delegate = self; 92 | self.dataSource = self; 93 | } 94 | return self; 95 | } 96 | 97 | #pragma mark - 多列tableview初始化 block回调 leftMargin margin 98 | - (id)initWithFrame:(CGRect)frame customerViewName:(NSString *)viewName columnNumber:(int)column leftMargin:(CGFloat)lMargin apartMargin:(CGFloat)margin setupData:(void (^)(SYTableViewEntity *))setupData{ 99 | if (self = [super initWithFrame:frame]) { 100 | self.separatorStyle = UITableViewCellSeparatorStyleNone; 101 | cellWidth = self.frame.size.width/column; 102 | customerViewName = viewName; 103 | columnNumber = column; 104 | leftMargin = lMargin; 105 | apartMargin = margin; 106 | CGFloat tWidth = (self.frame.size.width-(leftMargin*2))-((column-1)*apartMargin); 107 | cellWidth = tWidth/column; 108 | isBlock = YES; 109 | self.delegate = self; 110 | self.dataSource = self; 111 | self.setupDataCallBack = setupData; 112 | } 113 | return self; 114 | } 115 | 116 | - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{ 117 | if (_cellHeightArrays && _cellHeightArrays.count>0) { 118 | CGFloat height = [_cellHeightArrays[indexPath.row] floatValue]; 119 | return height; 120 | } 121 | return self.rowHeight; 122 | } 123 | 124 | - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ 125 | if (!self.arrayDatas) { 126 | return 0; 127 | } 128 | if (isSectionData && self.arrayDatas.count>0) { 129 | SYSectionEntity *entity = self.arrayDatas[section]; 130 | return (entity.rowArray.count + columnNumber - 1) / columnNumber; 131 | } 132 | return (_arrayDatas.count + columnNumber - 1) / columnNumber; 133 | } 134 | 135 | - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ 136 | SYTableViewCell *cell=nil; 137 | cell = [tableView dequeueReusableCellWithIdentifier:self.customerViewName]; 138 | if(cell==nil){ 139 | if (cellWidth==0) { 140 | cellWidth = self.frame.size.width; 141 | } 142 | cell = [[SYTableViewCell alloc] 143 | initWithReuseIdentifier:customerViewName 144 | customerViewName:customerViewName 145 | cellColumnNumber:columnNumber 146 | leftMargin :leftMargin 147 | apartMargin :apartMargin 148 | width :cellWidth 149 | height :self.rowHeight]; 150 | cell.setupDataTaget = self.target; 151 | cell.setupDataAction = self.setupDataAction; 152 | cell.setupDataCallBack = self.setupDataCallBack; 153 | } 154 | cell.selectionStyle = UITableViewCellSelectionStyleBlue; 155 | [cell loadJiugonggeCellData:indexPath cellDatas:self.arrayDatas]; 156 | return cell; 157 | } 158 | 159 | - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{ 160 | if (isSectionData && self.arrayDatas.count>0) { 161 | return self.arrayDatas.count; 162 | } 163 | return 1; 164 | } 165 | 166 | - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{ 167 | if (isSectionData && self.arrayDatas.count>0) { 168 | return self.sectionHeaderHeight; 169 | } 170 | return 0; 171 | } 172 | 173 | - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{ 174 | NSData * tempArchive = [NSKeyedArchiver archivedDataWithRootObject:_sectionHeaderView]; 175 | return [NSKeyedUnarchiver unarchiveObjectWithData:tempArchive]; 176 | } 177 | 178 | - (void)setArrayDatas:(NSMutableArray *)datas{ 179 | if (datas && datas.count>0) { 180 | id className = datas[0]; 181 | if ([className isKindOfClass:[SYSectionEntity class]]) { 182 | isSectionData = YES; 183 | }else{ 184 | isSectionData = NO; 185 | } 186 | } 187 | _arrayDatas = datas; 188 | } 189 | 190 | #pragma mark - tableView选中事件 191 | - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ 192 | if (_selectBlock) { 193 | self.selectBlock(indexPath); 194 | } 195 | if ([self.target respondsToSelector:self.selectedMethod]) { 196 | msgSend(msgTarget(self.target),self.selectedMethod,indexPath); 197 | } 198 | [tableView deselectRowAtIndexPath:indexPath animated:YES]; 199 | } 200 | 201 | // 去掉UItableview headerview黏性 202 | - (void)scrollViewDidScroll:(UIScrollView *)scrollView 203 | { 204 | if (!_isSectionStickyHeader) { 205 | CGFloat sectionHeaderHeight = 40; 206 | if (scrollView.contentOffset.y<=sectionHeaderHeight&&scrollView.contentOffset.y>=0) { 207 | scrollView.contentInset = UIEdgeInsetsMake(-scrollView.contentOffset.y, 0, 0, 0); 208 | } 209 | else if (scrollView.contentOffset.y>=sectionHeaderHeight) { 210 | scrollView.contentInset = UIEdgeInsetsMake(-sectionHeaderHeight, 0, 0, 0); 211 | } 212 | } 213 | 214 | } 215 | @end 216 | -------------------------------------------------------------------------------- /syTableView.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | DC5413751B98704A008CC92F /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = DC5413741B98704A008CC92F /* main.m */; }; 11 | DC54137E1B98704A008CC92F /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = DC54137C1B98704A008CC92F /* Main.storyboard */; }; 12 | DC5413801B98704A008CC92F /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = DC54137F1B98704A008CC92F /* Images.xcassets */; }; 13 | DC5413831B98704A008CC92F /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = DC5413811B98704A008CC92F /* LaunchScreen.xib */; }; 14 | DC54138F1B98704A008CC92F /* SYTableViewTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DC54138E1B98704A008CC92F /* SYTableViewTests.m */; }; 15 | DC5413A11B987072008CC92F /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = DC54139A1B987072008CC92F /* AppDelegate.m */; }; 16 | DC5413AC1B987123008CC92F /* SYSectionEntity.m in Sources */ = {isa = PBXBuildFile; fileRef = DC5413A41B987123008CC92F /* SYSectionEntity.m */; }; 17 | DC5413AD1B987123008CC92F /* SYTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = DC5413A61B987123008CC92F /* SYTableView.m */; }; 18 | DC5413AE1B987123008CC92F /* SYTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = DC5413A81B987123008CC92F /* SYTableViewCell.m */; }; 19 | DC5413AF1B987123008CC92F /* SYTableViewEntity.m in Sources */ = {isa = PBXBuildFile; fileRef = DC5413AA1B987123008CC92F /* SYTableViewEntity.m */; }; 20 | DC5413B21B98748D008CC92F /* RowViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = DC5413B11B98748D008CC92F /* RowViewController.m */; }; 21 | DC5413B51B9874C4008CC92F /* RowView.m in Sources */ = {isa = PBXBuildFile; fileRef = DC5413B41B9874C4008CC92F /* RowView.m */; }; 22 | DC5413B81B9877CA008CC92F /* RowViewModel.m in Sources */ = {isa = PBXBuildFile; fileRef = DC5413B71B9877CA008CC92F /* RowViewModel.m */; }; 23 | DC5413BB1B9878B1008CC92F /* DemoDataManager.m in Sources */ = {isa = PBXBuildFile; fileRef = DC5413BA1B9878B1008CC92F /* DemoDataManager.m */; }; 24 | DCF6481E1B987C410042968C /* DemoViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = DCF6481D1B987C410042968C /* DemoViewController.m */; }; 25 | DCF648211B988BB00042968C /* JiugonggeViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = DCF648201B988BB00042968C /* JiugonggeViewController.m */; }; 26 | DCF648241B988C1C0042968C /* JiugonggeView.m in Sources */ = {isa = PBXBuildFile; fileRef = DCF648231B988C1C0042968C /* JiugonggeView.m */; }; 27 | DCF648271B988EAB0042968C /* JiugonggeModel.m in Sources */ = {isa = PBXBuildFile; fileRef = DCF648261B988EAB0042968C /* JiugonggeModel.m */; }; 28 | DCF6482A1B989EB70042968C /* SectionViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = DCF648291B989EB70042968C /* SectionViewController.m */; }; 29 | DCF6482D1B989F5C0042968C /* TestView.m in Sources */ = {isa = PBXBuildFile; fileRef = DCF6482C1B989F5C0042968C /* TestView.m */; }; 30 | DCF648301B98A2DF0042968C /* DynamicViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = DCF6482F1B98A2DF0042968C /* DynamicViewController.m */; }; 31 | /* End PBXBuildFile section */ 32 | 33 | /* Begin PBXContainerItemProxy section */ 34 | DC5413891B98704A008CC92F /* PBXContainerItemProxy */ = { 35 | isa = PBXContainerItemProxy; 36 | containerPortal = DC5413671B98704A008CC92F /* Project object */; 37 | proxyType = 1; 38 | remoteGlobalIDString = DC54136E1B98704A008CC92F; 39 | remoteInfo = SYTableView; 40 | }; 41 | /* End PBXContainerItemProxy section */ 42 | 43 | /* Begin PBXFileReference section */ 44 | DC54136F1B98704A008CC92F /* SYTableView.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SYTableView.app; sourceTree = BUILT_PRODUCTS_DIR; }; 45 | DC5413731B98704A008CC92F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 46 | DC5413741B98704A008CC92F /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 47 | DC54137D1B98704A008CC92F /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; 48 | DC54137F1B98704A008CC92F /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; 49 | DC5413821B98704A008CC92F /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = ""; }; 50 | DC5413881B98704A008CC92F /* SYTableViewTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SYTableViewTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 51 | DC54138D1B98704A008CC92F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 52 | DC54138E1B98704A008CC92F /* SYTableViewTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SYTableViewTests.m; sourceTree = ""; }; 53 | DC5413991B987072008CC92F /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; 54 | DC54139A1B987072008CC92F /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; 55 | DC5413A31B987123008CC92F /* SYSectionEntity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SYSectionEntity.h; sourceTree = ""; }; 56 | DC5413A41B987123008CC92F /* SYSectionEntity.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SYSectionEntity.m; sourceTree = ""; }; 57 | DC5413A51B987123008CC92F /* SYTableView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SYTableView.h; sourceTree = ""; }; 58 | DC5413A61B987123008CC92F /* SYTableView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SYTableView.m; sourceTree = ""; }; 59 | DC5413A71B987123008CC92F /* SYTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SYTableViewCell.h; sourceTree = ""; }; 60 | DC5413A81B987123008CC92F /* SYTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SYTableViewCell.m; sourceTree = ""; }; 61 | DC5413A91B987123008CC92F /* SYTableViewEntity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SYTableViewEntity.h; sourceTree = ""; }; 62 | DC5413AA1B987123008CC92F /* SYTableViewEntity.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SYTableViewEntity.m; sourceTree = ""; }; 63 | DC5413AB1B987123008CC92F /* SYTableViewHeader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SYTableViewHeader.h; sourceTree = ""; }; 64 | DC5413B01B98748D008CC92F /* RowViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RowViewController.h; sourceTree = ""; }; 65 | DC5413B11B98748D008CC92F /* RowViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RowViewController.m; sourceTree = ""; }; 66 | DC5413B31B9874C3008CC92F /* RowView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RowView.h; sourceTree = ""; }; 67 | DC5413B41B9874C4008CC92F /* RowView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RowView.m; sourceTree = ""; }; 68 | DC5413B61B9877CA008CC92F /* RowViewModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RowViewModel.h; sourceTree = ""; }; 69 | DC5413B71B9877CA008CC92F /* RowViewModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RowViewModel.m; sourceTree = ""; }; 70 | DC5413B91B9878B1008CC92F /* DemoDataManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DemoDataManager.h; sourceTree = ""; }; 71 | DC5413BA1B9878B1008CC92F /* DemoDataManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DemoDataManager.m; sourceTree = ""; }; 72 | DCF6481C1B987C410042968C /* DemoViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DemoViewController.h; sourceTree = ""; }; 73 | DCF6481D1B987C410042968C /* DemoViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DemoViewController.m; sourceTree = ""; }; 74 | DCF6481F1B988BB00042968C /* JiugonggeViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JiugonggeViewController.h; sourceTree = ""; }; 75 | DCF648201B988BB00042968C /* JiugonggeViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JiugonggeViewController.m; sourceTree = ""; }; 76 | DCF648221B988C1C0042968C /* JiugonggeView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JiugonggeView.h; sourceTree = ""; }; 77 | DCF648231B988C1C0042968C /* JiugonggeView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JiugonggeView.m; sourceTree = ""; }; 78 | DCF648251B988EAB0042968C /* JiugonggeModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JiugonggeModel.h; sourceTree = ""; }; 79 | DCF648261B988EAB0042968C /* JiugonggeModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JiugonggeModel.m; sourceTree = ""; }; 80 | DCF648281B989EB70042968C /* SectionViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SectionViewController.h; sourceTree = ""; }; 81 | DCF648291B989EB70042968C /* SectionViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SectionViewController.m; sourceTree = ""; }; 82 | DCF6482B1B989F5C0042968C /* TestView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TestView.h; sourceTree = ""; }; 83 | DCF6482C1B989F5C0042968C /* TestView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TestView.m; sourceTree = ""; }; 84 | DCF6482E1B98A2DF0042968C /* DynamicViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DynamicViewController.h; sourceTree = ""; }; 85 | DCF6482F1B98A2DF0042968C /* DynamicViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DynamicViewController.m; sourceTree = ""; }; 86 | /* End PBXFileReference section */ 87 | 88 | /* Begin PBXFrameworksBuildPhase section */ 89 | DC54136C1B98704A008CC92F /* Frameworks */ = { 90 | isa = PBXFrameworksBuildPhase; 91 | buildActionMask = 2147483647; 92 | files = ( 93 | ); 94 | runOnlyForDeploymentPostprocessing = 0; 95 | }; 96 | DC5413851B98704A008CC92F /* Frameworks */ = { 97 | isa = PBXFrameworksBuildPhase; 98 | buildActionMask = 2147483647; 99 | files = ( 100 | ); 101 | runOnlyForDeploymentPostprocessing = 0; 102 | }; 103 | /* End PBXFrameworksBuildPhase section */ 104 | 105 | /* Begin PBXGroup section */ 106 | DC5413661B98704A008CC92F = { 107 | isa = PBXGroup; 108 | children = ( 109 | DC5413711B98704A008CC92F /* SYTableView */, 110 | DC54138B1B98704A008CC92F /* SYTableViewTests */, 111 | DC5413701B98704A008CC92F /* Products */, 112 | ); 113 | sourceTree = ""; 114 | }; 115 | DC5413701B98704A008CC92F /* Products */ = { 116 | isa = PBXGroup; 117 | children = ( 118 | DC54136F1B98704A008CC92F /* SYTableView.app */, 119 | DC5413881B98704A008CC92F /* SYTableViewTests.xctest */, 120 | ); 121 | name = Products; 122 | sourceTree = ""; 123 | }; 124 | DC5413711B98704A008CC92F /* SYTableView */ = { 125 | isa = PBXGroup; 126 | children = ( 127 | DC5413A21B987123008CC92F /* SYTableView */, 128 | DC5413981B987072008CC92F /* AppDelegate */, 129 | DC54139B1B987072008CC92F /* UI */, 130 | DC54137C1B98704A008CC92F /* Main.storyboard */, 131 | DC54137F1B98704A008CC92F /* Images.xcassets */, 132 | DC5413811B98704A008CC92F /* LaunchScreen.xib */, 133 | DC5413721B98704A008CC92F /* Supporting Files */, 134 | ); 135 | path = SYTableView; 136 | sourceTree = ""; 137 | }; 138 | DC5413721B98704A008CC92F /* Supporting Files */ = { 139 | isa = PBXGroup; 140 | children = ( 141 | DC5413731B98704A008CC92F /* Info.plist */, 142 | DC5413741B98704A008CC92F /* main.m */, 143 | ); 144 | name = "Supporting Files"; 145 | sourceTree = ""; 146 | }; 147 | DC54138B1B98704A008CC92F /* SYTableViewTests */ = { 148 | isa = PBXGroup; 149 | children = ( 150 | DC54138E1B98704A008CC92F /* SYTableViewTests.m */, 151 | DC54138C1B98704A008CC92F /* Supporting Files */, 152 | ); 153 | path = SYTableViewTests; 154 | sourceTree = ""; 155 | }; 156 | DC54138C1B98704A008CC92F /* Supporting Files */ = { 157 | isa = PBXGroup; 158 | children = ( 159 | DC54138D1B98704A008CC92F /* Info.plist */, 160 | ); 161 | name = "Supporting Files"; 162 | sourceTree = ""; 163 | }; 164 | DC5413981B987072008CC92F /* AppDelegate */ = { 165 | isa = PBXGroup; 166 | children = ( 167 | DC5413991B987072008CC92F /* AppDelegate.h */, 168 | DC54139A1B987072008CC92F /* AppDelegate.m */, 169 | ); 170 | path = AppDelegate; 171 | sourceTree = ""; 172 | }; 173 | DC54139B1B987072008CC92F /* UI */ = { 174 | isa = PBXGroup; 175 | children = ( 176 | DC54139C1B987072008CC92F /* Demo */, 177 | ); 178 | path = UI; 179 | sourceTree = ""; 180 | }; 181 | DC54139C1B987072008CC92F /* Demo */ = { 182 | isa = PBXGroup; 183 | children = ( 184 | DC54139D1B987072008CC92F /* DataManager */, 185 | DC54139E1B987072008CC92F /* Model */, 186 | DC54139F1B987072008CC92F /* View */, 187 | DC5413A01B987072008CC92F /* ViewController */, 188 | ); 189 | path = Demo; 190 | sourceTree = ""; 191 | }; 192 | DC54139D1B987072008CC92F /* DataManager */ = { 193 | isa = PBXGroup; 194 | children = ( 195 | DC5413B91B9878B1008CC92F /* DemoDataManager.h */, 196 | DC5413BA1B9878B1008CC92F /* DemoDataManager.m */, 197 | ); 198 | path = DataManager; 199 | sourceTree = ""; 200 | }; 201 | DC54139E1B987072008CC92F /* Model */ = { 202 | isa = PBXGroup; 203 | children = ( 204 | DC5413B61B9877CA008CC92F /* RowViewModel.h */, 205 | DC5413B71B9877CA008CC92F /* RowViewModel.m */, 206 | DCF648251B988EAB0042968C /* JiugonggeModel.h */, 207 | DCF648261B988EAB0042968C /* JiugonggeModel.m */, 208 | ); 209 | path = Model; 210 | sourceTree = ""; 211 | }; 212 | DC54139F1B987072008CC92F /* View */ = { 213 | isa = PBXGroup; 214 | children = ( 215 | DC5413B31B9874C3008CC92F /* RowView.h */, 216 | DC5413B41B9874C4008CC92F /* RowView.m */, 217 | DCF648221B988C1C0042968C /* JiugonggeView.h */, 218 | DCF648231B988C1C0042968C /* JiugonggeView.m */, 219 | DCF6482B1B989F5C0042968C /* TestView.h */, 220 | DCF6482C1B989F5C0042968C /* TestView.m */, 221 | ); 222 | path = View; 223 | sourceTree = ""; 224 | }; 225 | DC5413A01B987072008CC92F /* ViewController */ = { 226 | isa = PBXGroup; 227 | children = ( 228 | DCF6481C1B987C410042968C /* DemoViewController.h */, 229 | DCF6481D1B987C410042968C /* DemoViewController.m */, 230 | DC5413B01B98748D008CC92F /* RowViewController.h */, 231 | DC5413B11B98748D008CC92F /* RowViewController.m */, 232 | DCF6481F1B988BB00042968C /* JiugonggeViewController.h */, 233 | DCF648201B988BB00042968C /* JiugonggeViewController.m */, 234 | DCF648281B989EB70042968C /* SectionViewController.h */, 235 | DCF648291B989EB70042968C /* SectionViewController.m */, 236 | DCF6482E1B98A2DF0042968C /* DynamicViewController.h */, 237 | DCF6482F1B98A2DF0042968C /* DynamicViewController.m */, 238 | ); 239 | path = ViewController; 240 | sourceTree = ""; 241 | }; 242 | DC5413A21B987123008CC92F /* SYTableView */ = { 243 | isa = PBXGroup; 244 | children = ( 245 | DC5413A31B987123008CC92F /* SYSectionEntity.h */, 246 | DC5413A41B987123008CC92F /* SYSectionEntity.m */, 247 | DC5413A51B987123008CC92F /* SYTableView.h */, 248 | DC5413A61B987123008CC92F /* SYTableView.m */, 249 | DC5413A71B987123008CC92F /* SYTableViewCell.h */, 250 | DC5413A81B987123008CC92F /* SYTableViewCell.m */, 251 | DC5413A91B987123008CC92F /* SYTableViewEntity.h */, 252 | DC5413AA1B987123008CC92F /* SYTableViewEntity.m */, 253 | DC5413AB1B987123008CC92F /* SYTableViewHeader.h */, 254 | ); 255 | path = SYTableView; 256 | sourceTree = ""; 257 | }; 258 | /* End PBXGroup section */ 259 | 260 | /* Begin PBXNativeTarget section */ 261 | DC54136E1B98704A008CC92F /* SYTableView */ = { 262 | isa = PBXNativeTarget; 263 | buildConfigurationList = DC5413921B98704A008CC92F /* Build configuration list for PBXNativeTarget "SYTableView" */; 264 | buildPhases = ( 265 | DC54136B1B98704A008CC92F /* Sources */, 266 | DC54136C1B98704A008CC92F /* Frameworks */, 267 | DC54136D1B98704A008CC92F /* Resources */, 268 | ); 269 | buildRules = ( 270 | ); 271 | dependencies = ( 272 | ); 273 | name = SYTableView; 274 | productName = SYTableView; 275 | productReference = DC54136F1B98704A008CC92F /* SYTableView.app */; 276 | productType = "com.apple.product-type.application"; 277 | }; 278 | DC5413871B98704A008CC92F /* SYTableViewTests */ = { 279 | isa = PBXNativeTarget; 280 | buildConfigurationList = DC5413951B98704A008CC92F /* Build configuration list for PBXNativeTarget "SYTableViewTests" */; 281 | buildPhases = ( 282 | DC5413841B98704A008CC92F /* Sources */, 283 | DC5413851B98704A008CC92F /* Frameworks */, 284 | DC5413861B98704A008CC92F /* Resources */, 285 | ); 286 | buildRules = ( 287 | ); 288 | dependencies = ( 289 | DC54138A1B98704A008CC92F /* PBXTargetDependency */, 290 | ); 291 | name = SYTableViewTests; 292 | productName = SYTableViewTests; 293 | productReference = DC5413881B98704A008CC92F /* SYTableViewTests.xctest */; 294 | productType = "com.apple.product-type.bundle.unit-test"; 295 | }; 296 | /* End PBXNativeTarget section */ 297 | 298 | /* Begin PBXProject section */ 299 | DC5413671B98704A008CC92F /* Project object */ = { 300 | isa = PBXProject; 301 | attributes = { 302 | LastUpgradeCheck = 0630; 303 | ORGANIZATIONNAME = shiyuan; 304 | TargetAttributes = { 305 | DC54136E1B98704A008CC92F = { 306 | CreatedOnToolsVersion = 6.3.2; 307 | }; 308 | DC5413871B98704A008CC92F = { 309 | CreatedOnToolsVersion = 6.3.2; 310 | TestTargetID = DC54136E1B98704A008CC92F; 311 | }; 312 | }; 313 | }; 314 | buildConfigurationList = DC54136A1B98704A008CC92F /* Build configuration list for PBXProject "SYTableView" */; 315 | compatibilityVersion = "Xcode 3.2"; 316 | developmentRegion = English; 317 | hasScannedForEncodings = 0; 318 | knownRegions = ( 319 | en, 320 | Base, 321 | ); 322 | mainGroup = DC5413661B98704A008CC92F; 323 | productRefGroup = DC5413701B98704A008CC92F /* Products */; 324 | projectDirPath = ""; 325 | projectRoot = ""; 326 | targets = ( 327 | DC54136E1B98704A008CC92F /* SYTableView */, 328 | DC5413871B98704A008CC92F /* SYTableViewTests */, 329 | ); 330 | }; 331 | /* End PBXProject section */ 332 | 333 | /* Begin PBXResourcesBuildPhase section */ 334 | DC54136D1B98704A008CC92F /* Resources */ = { 335 | isa = PBXResourcesBuildPhase; 336 | buildActionMask = 2147483647; 337 | files = ( 338 | DC54137E1B98704A008CC92F /* Main.storyboard in Resources */, 339 | DC5413831B98704A008CC92F /* LaunchScreen.xib in Resources */, 340 | DC5413801B98704A008CC92F /* Images.xcassets in Resources */, 341 | ); 342 | runOnlyForDeploymentPostprocessing = 0; 343 | }; 344 | DC5413861B98704A008CC92F /* Resources */ = { 345 | isa = PBXResourcesBuildPhase; 346 | buildActionMask = 2147483647; 347 | files = ( 348 | ); 349 | runOnlyForDeploymentPostprocessing = 0; 350 | }; 351 | /* End PBXResourcesBuildPhase section */ 352 | 353 | /* Begin PBXSourcesBuildPhase section */ 354 | DC54136B1B98704A008CC92F /* Sources */ = { 355 | isa = PBXSourcesBuildPhase; 356 | buildActionMask = 2147483647; 357 | files = ( 358 | DCF6482D1B989F5C0042968C /* TestView.m in Sources */, 359 | DCF6481E1B987C410042968C /* DemoViewController.m in Sources */, 360 | DC5413AF1B987123008CC92F /* SYTableViewEntity.m in Sources */, 361 | DCF648241B988C1C0042968C /* JiugonggeView.m in Sources */, 362 | DCF648211B988BB00042968C /* JiugonggeViewController.m in Sources */, 363 | DCF6482A1B989EB70042968C /* SectionViewController.m in Sources */, 364 | DCF648301B98A2DF0042968C /* DynamicViewController.m in Sources */, 365 | DC5413AC1B987123008CC92F /* SYSectionEntity.m in Sources */, 366 | DC5413AE1B987123008CC92F /* SYTableViewCell.m in Sources */, 367 | DC5413B21B98748D008CC92F /* RowViewController.m in Sources */, 368 | DC5413A11B987072008CC92F /* AppDelegate.m in Sources */, 369 | DC5413751B98704A008CC92F /* main.m in Sources */, 370 | DC5413BB1B9878B1008CC92F /* DemoDataManager.m in Sources */, 371 | DC5413AD1B987123008CC92F /* SYTableView.m in Sources */, 372 | DC5413B51B9874C4008CC92F /* RowView.m in Sources */, 373 | DC5413B81B9877CA008CC92F /* RowViewModel.m in Sources */, 374 | DCF648271B988EAB0042968C /* JiugonggeModel.m in Sources */, 375 | ); 376 | runOnlyForDeploymentPostprocessing = 0; 377 | }; 378 | DC5413841B98704A008CC92F /* Sources */ = { 379 | isa = PBXSourcesBuildPhase; 380 | buildActionMask = 2147483647; 381 | files = ( 382 | DC54138F1B98704A008CC92F /* SYTableViewTests.m in Sources */, 383 | ); 384 | runOnlyForDeploymentPostprocessing = 0; 385 | }; 386 | /* End PBXSourcesBuildPhase section */ 387 | 388 | /* Begin PBXTargetDependency section */ 389 | DC54138A1B98704A008CC92F /* PBXTargetDependency */ = { 390 | isa = PBXTargetDependency; 391 | target = DC54136E1B98704A008CC92F /* SYTableView */; 392 | targetProxy = DC5413891B98704A008CC92F /* PBXContainerItemProxy */; 393 | }; 394 | /* End PBXTargetDependency section */ 395 | 396 | /* Begin PBXVariantGroup section */ 397 | DC54137C1B98704A008CC92F /* Main.storyboard */ = { 398 | isa = PBXVariantGroup; 399 | children = ( 400 | DC54137D1B98704A008CC92F /* Base */, 401 | ); 402 | name = Main.storyboard; 403 | sourceTree = ""; 404 | }; 405 | DC5413811B98704A008CC92F /* LaunchScreen.xib */ = { 406 | isa = PBXVariantGroup; 407 | children = ( 408 | DC5413821B98704A008CC92F /* Base */, 409 | ); 410 | name = LaunchScreen.xib; 411 | sourceTree = ""; 412 | }; 413 | /* End PBXVariantGroup section */ 414 | 415 | /* Begin XCBuildConfiguration section */ 416 | DC5413901B98704A008CC92F /* Debug */ = { 417 | isa = XCBuildConfiguration; 418 | buildSettings = { 419 | ALWAYS_SEARCH_USER_PATHS = NO; 420 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 421 | CLANG_CXX_LIBRARY = "libc++"; 422 | CLANG_ENABLE_MODULES = YES; 423 | CLANG_ENABLE_OBJC_ARC = YES; 424 | CLANG_WARN_BOOL_CONVERSION = YES; 425 | CLANG_WARN_CONSTANT_CONVERSION = YES; 426 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 427 | CLANG_WARN_EMPTY_BODY = YES; 428 | CLANG_WARN_ENUM_CONVERSION = YES; 429 | CLANG_WARN_INT_CONVERSION = YES; 430 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 431 | CLANG_WARN_UNREACHABLE_CODE = YES; 432 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 433 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 434 | COPY_PHASE_STRIP = NO; 435 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 436 | ENABLE_STRICT_OBJC_MSGSEND = YES; 437 | GCC_C_LANGUAGE_STANDARD = gnu99; 438 | GCC_DYNAMIC_NO_PIC = NO; 439 | GCC_NO_COMMON_BLOCKS = YES; 440 | GCC_OPTIMIZATION_LEVEL = 0; 441 | GCC_PREPROCESSOR_DEFINITIONS = ( 442 | "DEBUG=1", 443 | "$(inherited)", 444 | ); 445 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 446 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 447 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 448 | GCC_WARN_UNDECLARED_SELECTOR = YES; 449 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 450 | GCC_WARN_UNUSED_FUNCTION = YES; 451 | GCC_WARN_UNUSED_VARIABLE = YES; 452 | IPHONEOS_DEPLOYMENT_TARGET = 8.3; 453 | MTL_ENABLE_DEBUG_INFO = YES; 454 | ONLY_ACTIVE_ARCH = YES; 455 | SDKROOT = iphoneos; 456 | }; 457 | name = Debug; 458 | }; 459 | DC5413911B98704A008CC92F /* Release */ = { 460 | isa = XCBuildConfiguration; 461 | buildSettings = { 462 | ALWAYS_SEARCH_USER_PATHS = NO; 463 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 464 | CLANG_CXX_LIBRARY = "libc++"; 465 | CLANG_ENABLE_MODULES = YES; 466 | CLANG_ENABLE_OBJC_ARC = YES; 467 | CLANG_WARN_BOOL_CONVERSION = YES; 468 | CLANG_WARN_CONSTANT_CONVERSION = YES; 469 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 470 | CLANG_WARN_EMPTY_BODY = YES; 471 | CLANG_WARN_ENUM_CONVERSION = YES; 472 | CLANG_WARN_INT_CONVERSION = YES; 473 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 474 | CLANG_WARN_UNREACHABLE_CODE = YES; 475 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 476 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 477 | COPY_PHASE_STRIP = NO; 478 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 479 | ENABLE_NS_ASSERTIONS = NO; 480 | ENABLE_STRICT_OBJC_MSGSEND = YES; 481 | GCC_C_LANGUAGE_STANDARD = gnu99; 482 | GCC_NO_COMMON_BLOCKS = YES; 483 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 484 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 485 | GCC_WARN_UNDECLARED_SELECTOR = YES; 486 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 487 | GCC_WARN_UNUSED_FUNCTION = YES; 488 | GCC_WARN_UNUSED_VARIABLE = YES; 489 | IPHONEOS_DEPLOYMENT_TARGET = 8.3; 490 | MTL_ENABLE_DEBUG_INFO = NO; 491 | SDKROOT = iphoneos; 492 | VALIDATE_PRODUCT = YES; 493 | }; 494 | name = Release; 495 | }; 496 | DC5413931B98704A008CC92F /* Debug */ = { 497 | isa = XCBuildConfiguration; 498 | buildSettings = { 499 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 500 | INFOPLIST_FILE = SYTableView/Info.plist; 501 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 502 | PRODUCT_NAME = "$(TARGET_NAME)"; 503 | }; 504 | name = Debug; 505 | }; 506 | DC5413941B98704A008CC92F /* Release */ = { 507 | isa = XCBuildConfiguration; 508 | buildSettings = { 509 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 510 | INFOPLIST_FILE = SYTableView/Info.plist; 511 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 512 | PRODUCT_NAME = "$(TARGET_NAME)"; 513 | }; 514 | name = Release; 515 | }; 516 | DC5413961B98704A008CC92F /* Debug */ = { 517 | isa = XCBuildConfiguration; 518 | buildSettings = { 519 | BUNDLE_LOADER = "$(TEST_HOST)"; 520 | FRAMEWORK_SEARCH_PATHS = ( 521 | "$(SDKROOT)/Developer/Library/Frameworks", 522 | "$(inherited)", 523 | ); 524 | GCC_PREPROCESSOR_DEFINITIONS = ( 525 | "DEBUG=1", 526 | "$(inherited)", 527 | ); 528 | INFOPLIST_FILE = SYTableViewTests/Info.plist; 529 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 530 | PRODUCT_NAME = "$(TARGET_NAME)"; 531 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/SYTableView.app/SYTableView"; 532 | }; 533 | name = Debug; 534 | }; 535 | DC5413971B98704A008CC92F /* Release */ = { 536 | isa = XCBuildConfiguration; 537 | buildSettings = { 538 | BUNDLE_LOADER = "$(TEST_HOST)"; 539 | FRAMEWORK_SEARCH_PATHS = ( 540 | "$(SDKROOT)/Developer/Library/Frameworks", 541 | "$(inherited)", 542 | ); 543 | INFOPLIST_FILE = SYTableViewTests/Info.plist; 544 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 545 | PRODUCT_NAME = "$(TARGET_NAME)"; 546 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/SYTableView.app/SYTableView"; 547 | }; 548 | name = Release; 549 | }; 550 | /* End XCBuildConfiguration section */ 551 | 552 | /* Begin XCConfigurationList section */ 553 | DC54136A1B98704A008CC92F /* Build configuration list for PBXProject "SYTableView" */ = { 554 | isa = XCConfigurationList; 555 | buildConfigurations = ( 556 | DC5413901B98704A008CC92F /* Debug */, 557 | DC5413911B98704A008CC92F /* Release */, 558 | ); 559 | defaultConfigurationIsVisible = 0; 560 | defaultConfigurationName = Release; 561 | }; 562 | DC5413921B98704A008CC92F /* Build configuration list for PBXNativeTarget "SYTableView" */ = { 563 | isa = XCConfigurationList; 564 | buildConfigurations = ( 565 | DC5413931B98704A008CC92F /* Debug */, 566 | DC5413941B98704A008CC92F /* Release */, 567 | ); 568 | defaultConfigurationIsVisible = 0; 569 | defaultConfigurationName = Release; 570 | }; 571 | DC5413951B98704A008CC92F /* Build configuration list for PBXNativeTarget "SYTableViewTests" */ = { 572 | isa = XCConfigurationList; 573 | buildConfigurations = ( 574 | DC5413961B98704A008CC92F /* Debug */, 575 | DC5413971B98704A008CC92F /* Release */, 576 | ); 577 | defaultConfigurationIsVisible = 0; 578 | defaultConfigurationName = Release; 579 | }; 580 | /* End XCConfigurationList section */ 581 | }; 582 | rootObject = DC5413671B98704A008CC92F /* Project object */; 583 | } 584 | --------------------------------------------------------------------------------