├── README.md ├── SYTableViewTests ├── Info.plist └── SYTableViewTests.m ├── syTableView.podspec ├── syTableView.xcodeproj ├── project.pbxproj ├── project.xcworkspace │ ├── contents.xcworkspacedata │ ├── xcshareddata │ │ └── SYTableView.xccheckout │ └── xcuserdata │ │ └── shiyuan.xcuserdatad │ │ └── UserInterfaceState.xcuserstate └── xcuserdata │ └── shiyuan.xcuserdatad │ ├── xcdebugger │ └── Breakpoints_v2.xcbkptlist │ └── xcschemes │ ├── syTableView.xcscheme │ └── xcschememanagement.plist ├── syTableView ├── AppDelegate │ ├── AppDelegate.h │ └── AppDelegate.m ├── Base.lproj │ ├── LaunchScreen.xib │ └── Main.storyboard ├── Images.xcassets │ ├── AppIcon.appiconset │ │ └── Contents.json │ ├── JggIcon │ │ ├── 1.imageset │ │ │ ├── 1.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 │ │ ├── 2.imageset │ │ │ ├── 2.jpg │ │ │ └── Contents.json │ │ ├── 20.imageset │ │ │ ├── 20.jpg │ │ │ └── Contents.json │ │ ├── 21.imageset │ │ │ ├── 21.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 │ └── listIcon │ │ ├── my_bookmark_icon.imageset │ │ ├── Contents.json │ │ ├── my_bookmark_icon@2x.png │ │ └── my_bookmark_icon@3x.png │ │ ├── my_download_icon.imageset │ │ ├── Contents.json │ │ ├── my_download_icon@2x.png │ │ └── my_download_icon@3x.png │ │ ├── my_laapp_icon.imageset │ │ ├── Contents.json │ │ ├── my_laapp_icon@2x.png │ │ └── my_laapp_icon@3x.png │ │ ├── my_notification_icon.imageset │ │ ├── Contents.json │ │ ├── my_notification_icon@2x.png │ │ └── my_notification_icon@3x.png │ │ ├── my_photo_logged_in.imageset │ │ ├── Contents.json │ │ ├── my_photo_logged_in@2x.png │ │ └── my_photo_logged_in@3x.png │ │ ├── my_privilege_icon.imageset │ │ ├── Contents.json │ │ ├── my_privilege_icon@2x.png │ │ └── my_privilege_icon@3x.png │ │ ├── my_setting_icon.imageset │ │ ├── Contents.json │ │ ├── my_setting_icon@2x.png │ │ └── my_setting_icon@3x.png │ │ ├── my_wallet_icon.imageset │ │ ├── Contents.json │ │ ├── my_wallet_icon@2x.png │ │ └── my_wallet_icon@3x.png │ │ ├── personalcenter_tab_icon_selected.imageset │ │ ├── Contents.json │ │ ├── personalcenter_tab_icon_selected@2x.png │ │ └── personalcenter_tab_icon_selected@3x.png │ │ ├── pixel_search_share_friends.imageset │ │ ├── Contents.json │ │ └── pixel_search_share_friends@2x.png │ │ ├── toolbar_goforward_highlighted.imageset │ │ ├── Contents.json │ │ ├── toolbar_goforward_highlighted@2x.png │ │ └── toolbar_goforward_highlighted@3x.png │ │ ├── toolbar_goforward_normal.imageset │ │ ├── Contents.json │ │ ├── toolbar_goforward_normal@2x.png │ │ └── toolbar_goforward_normal@3x.png │ │ ├── wallet_paysecurity.imageset │ │ ├── Contents.json │ │ ├── wallet_paysecurity@2x.png │ │ └── wallet_paysecurity@3x.png │ │ └── wallet_trade.imageset │ │ ├── Contents.json │ │ ├── wallet_trade@2x.png │ │ └── wallet_trade@3x.png ├── Info.plist ├── SYTableView │ ├── SYSectionEntity.h │ ├── SYSectionEntity.m │ ├── SYTableView.h │ ├── SYTableView.m │ ├── SYTableViewCell.h │ ├── SYTableViewCell.m │ ├── SYTableViewEntity.h │ ├── SYTableViewEntity.m │ └── SYTableViewHeader.h ├── UI │ └── Demo │ │ ├── DataManager │ │ ├── DemoDataManager.h │ │ └── DemoDataManager.m │ │ ├── Model │ │ ├── JiugonggeModel.h │ │ ├── JiugonggeModel.m │ │ ├── RowViewModel.h │ │ └── RowViewModel.m │ │ ├── View │ │ ├── JiugonggeView.h │ │ ├── JiugonggeView.m │ │ ├── RowView.h │ │ ├── RowView.m │ │ ├── TestView.h │ │ └── TestView.m │ │ └── ViewController │ │ ├── DemoViewController.h │ │ ├── DemoViewController.m │ │ ├── DynamicViewController.h │ │ ├── DynamicViewController.m │ │ ├── JiugonggeViewController.h │ │ ├── JiugonggeViewController.m │ │ ├── RowViewController.h │ │ ├── RowViewController.m │ │ ├── SectionViewController.h │ │ └── SectionViewController.m └── main.m └── tableview.jpeg /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 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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.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.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 | -------------------------------------------------------------------------------- /syTableView.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /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.xcodeproj/project.xcworkspace/xcuserdata/shiyuan.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/43fc9911f13537d3f570d144d3aca9dbd22e7c1a/syTableView.xcodeproj/project.xcworkspace/xcuserdata/shiyuan.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /syTableView.xcodeproj/xcuserdata/shiyuan.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 8 | 20 | 21 | 22 | 24 | 36 | 37 | 38 | 40 | 52 | 53 | 54 | 56 | 68 | 69 | 70 | 71 | 72 | -------------------------------------------------------------------------------- /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.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/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/AppDelegate/AppDelegate.m: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.m 3 | // SYTableView 4 | // 5 | // Created by 世缘 on 15/9/3. 6 | // Copyright (c) 2015年 shiyuan. All rights reserved. 7 | // 8 | 9 | #import "AppDelegate.h" 10 | #import "DemoViewController.h" 11 | @interface AppDelegate () 12 | 13 | @end 14 | 15 | @implementation AppDelegate 16 | 17 | 18 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 19 | self.window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds]; 20 | DemoViewController *vc = [[DemoViewController alloc]init]; 21 | self.window.rootViewController = [[UINavigationController alloc] initWithRootViewController:vc]; 22 | [self.window makeKeyAndVisible]; 23 | return YES; 24 | } 25 | 26 | - (void)applicationWillResignActive:(UIApplication *)application { 27 | // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. 28 | // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. 29 | } 30 | 31 | - (void)applicationDidEnterBackground:(UIApplication *)application { 32 | // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 33 | // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. 34 | } 35 | 36 | - (void)applicationWillEnterForeground:(UIApplication *)application { 37 | // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background. 38 | } 39 | 40 | - (void)applicationDidBecomeActive:(UIApplication *)application { 41 | // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. 42 | } 43 | 44 | - (void)applicationWillTerminate:(UIApplication *)application { 45 | // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. 46 | } 47 | 48 | @end 49 | -------------------------------------------------------------------------------- /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/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 | -------------------------------------------------------------------------------- /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 | } -------------------------------------------------------------------------------- /syTableView/Images.xcassets/JggIcon/1.imageset/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/43fc9911f13537d3f570d144d3aca9dbd22e7c1a/syTableView/Images.xcassets/JggIcon/1.imageset/1.jpg -------------------------------------------------------------------------------- /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/10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/43fc9911f13537d3f570d144d3aca9dbd22e7c1a/syTableView/Images.xcassets/JggIcon/10.imageset/10.jpg -------------------------------------------------------------------------------- /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/11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/43fc9911f13537d3f570d144d3aca9dbd22e7c1a/syTableView/Images.xcassets/JggIcon/11.imageset/11.jpg -------------------------------------------------------------------------------- /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/12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/43fc9911f13537d3f570d144d3aca9dbd22e7c1a/syTableView/Images.xcassets/JggIcon/12.imageset/12.jpg -------------------------------------------------------------------------------- /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/13.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/43fc9911f13537d3f570d144d3aca9dbd22e7c1a/syTableView/Images.xcassets/JggIcon/13.imageset/13.jpg -------------------------------------------------------------------------------- /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/14.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/43fc9911f13537d3f570d144d3aca9dbd22e7c1a/syTableView/Images.xcassets/JggIcon/14.imageset/14.jpg -------------------------------------------------------------------------------- /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/15.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/43fc9911f13537d3f570d144d3aca9dbd22e7c1a/syTableView/Images.xcassets/JggIcon/15.imageset/15.jpg -------------------------------------------------------------------------------- /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/16.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/43fc9911f13537d3f570d144d3aca9dbd22e7c1a/syTableView/Images.xcassets/JggIcon/16.imageset/16.jpg -------------------------------------------------------------------------------- /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/17.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/43fc9911f13537d3f570d144d3aca9dbd22e7c1a/syTableView/Images.xcassets/JggIcon/17.imageset/17.jpg -------------------------------------------------------------------------------- /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/18.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/43fc9911f13537d3f570d144d3aca9dbd22e7c1a/syTableView/Images.xcassets/JggIcon/18.imageset/18.jpg -------------------------------------------------------------------------------- /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/19.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/43fc9911f13537d3f570d144d3aca9dbd22e7c1a/syTableView/Images.xcassets/JggIcon/19.imageset/19.jpg -------------------------------------------------------------------------------- /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/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/43fc9911f13537d3f570d144d3aca9dbd22e7c1a/syTableView/Images.xcassets/JggIcon/2.imageset/2.jpg -------------------------------------------------------------------------------- /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/20.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/43fc9911f13537d3f570d144d3aca9dbd22e7c1a/syTableView/Images.xcassets/JggIcon/20.imageset/20.jpg -------------------------------------------------------------------------------- /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/21.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/43fc9911f13537d3f570d144d3aca9dbd22e7c1a/syTableView/Images.xcassets/JggIcon/21.imageset/21.jpg -------------------------------------------------------------------------------- /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/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/43fc9911f13537d3f570d144d3aca9dbd22e7c1a/syTableView/Images.xcassets/JggIcon/3.imageset/3.jpg -------------------------------------------------------------------------------- /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/4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/43fc9911f13537d3f570d144d3aca9dbd22e7c1a/syTableView/Images.xcassets/JggIcon/4.imageset/4.jpg -------------------------------------------------------------------------------- /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/5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/43fc9911f13537d3f570d144d3aca9dbd22e7c1a/syTableView/Images.xcassets/JggIcon/5.imageset/5.jpg -------------------------------------------------------------------------------- /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/6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/43fc9911f13537d3f570d144d3aca9dbd22e7c1a/syTableView/Images.xcassets/JggIcon/6.imageset/6.jpg -------------------------------------------------------------------------------- /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/7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/43fc9911f13537d3f570d144d3aca9dbd22e7c1a/syTableView/Images.xcassets/JggIcon/7.imageset/7.jpg -------------------------------------------------------------------------------- /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/8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/43fc9911f13537d3f570d144d3aca9dbd22e7c1a/syTableView/Images.xcassets/JggIcon/8.imageset/8.jpg -------------------------------------------------------------------------------- /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/9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/43fc9911f13537d3f570d144d3aca9dbd22e7c1a/syTableView/Images.xcassets/JggIcon/9.imageset/9.jpg -------------------------------------------------------------------------------- /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/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_bookmark_icon.imageset/my_bookmark_icon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/43fc9911f13537d3f570d144d3aca9dbd22e7c1a/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/43fc9911f13537d3f570d144d3aca9dbd22e7c1a/syTableView/Images.xcassets/listIcon/my_bookmark_icon.imageset/my_bookmark_icon@3x.png -------------------------------------------------------------------------------- /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_download_icon.imageset/my_download_icon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/43fc9911f13537d3f570d144d3aca9dbd22e7c1a/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/43fc9911f13537d3f570d144d3aca9dbd22e7c1a/syTableView/Images.xcassets/listIcon/my_download_icon.imageset/my_download_icon@3x.png -------------------------------------------------------------------------------- /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_laapp_icon.imageset/my_laapp_icon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/43fc9911f13537d3f570d144d3aca9dbd22e7c1a/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/43fc9911f13537d3f570d144d3aca9dbd22e7c1a/syTableView/Images.xcassets/listIcon/my_laapp_icon.imageset/my_laapp_icon@3x.png -------------------------------------------------------------------------------- /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/my_notification_icon.imageset/my_notification_icon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/43fc9911f13537d3f570d144d3aca9dbd22e7c1a/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/43fc9911f13537d3f570d144d3aca9dbd22e7c1a/syTableView/Images.xcassets/listIcon/my_notification_icon.imageset/my_notification_icon@3x.png -------------------------------------------------------------------------------- /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/my_photo_logged_in.imageset/my_photo_logged_in@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/43fc9911f13537d3f570d144d3aca9dbd22e7c1a/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/43fc9911f13537d3f570d144d3aca9dbd22e7c1a/syTableView/Images.xcassets/listIcon/my_photo_logged_in.imageset/my_photo_logged_in@3x.png -------------------------------------------------------------------------------- /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_privilege_icon.imageset/my_privilege_icon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/43fc9911f13537d3f570d144d3aca9dbd22e7c1a/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/43fc9911f13537d3f570d144d3aca9dbd22e7c1a/syTableView/Images.xcassets/listIcon/my_privilege_icon.imageset/my_privilege_icon@3x.png -------------------------------------------------------------------------------- /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_setting_icon.imageset/my_setting_icon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/43fc9911f13537d3f570d144d3aca9dbd22e7c1a/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/43fc9911f13537d3f570d144d3aca9dbd22e7c1a/syTableView/Images.xcassets/listIcon/my_setting_icon.imageset/my_setting_icon@3x.png -------------------------------------------------------------------------------- /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_wallet_icon.imageset/my_wallet_icon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/43fc9911f13537d3f570d144d3aca9dbd22e7c1a/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/43fc9911f13537d3f570d144d3aca9dbd22e7c1a/syTableView/Images.xcassets/listIcon/my_wallet_icon.imageset/my_wallet_icon@3x.png -------------------------------------------------------------------------------- /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/Images.xcassets/listIcon/personalcenter_tab_icon_selected.imageset/personalcenter_tab_icon_selected@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/43fc9911f13537d3f570d144d3aca9dbd22e7c1a/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/43fc9911f13537d3f570d144d3aca9dbd22e7c1a/syTableView/Images.xcassets/listIcon/personalcenter_tab_icon_selected.imageset/personalcenter_tab_icon_selected@3x.png -------------------------------------------------------------------------------- /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/pixel_search_share_friends.imageset/pixel_search_share_friends@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/43fc9911f13537d3f570d144d3aca9dbd22e7c1a/syTableView/Images.xcassets/listIcon/pixel_search_share_friends.imageset/pixel_search_share_friends@2x.png -------------------------------------------------------------------------------- /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/toolbar_goforward_highlighted.imageset/toolbar_goforward_highlighted@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/43fc9911f13537d3f570d144d3aca9dbd22e7c1a/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/43fc9911f13537d3f570d144d3aca9dbd22e7c1a/syTableView/Images.xcassets/listIcon/toolbar_goforward_highlighted.imageset/toolbar_goforward_highlighted@3x.png -------------------------------------------------------------------------------- /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_normal.imageset/toolbar_goforward_normal@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/43fc9911f13537d3f570d144d3aca9dbd22e7c1a/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/43fc9911f13537d3f570d144d3aca9dbd22e7c1a/syTableView/Images.xcassets/listIcon/toolbar_goforward_normal.imageset/toolbar_goforward_normal@3x.png -------------------------------------------------------------------------------- /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/wallet_paysecurity.imageset/wallet_paysecurity@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/43fc9911f13537d3f570d144d3aca9dbd22e7c1a/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/43fc9911f13537d3f570d144d3aca9dbd22e7c1a/syTableView/Images.xcassets/listIcon/wallet_paysecurity.imageset/wallet_paysecurity@3x.png -------------------------------------------------------------------------------- /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/wallet_trade.imageset/wallet_trade@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/43fc9911f13537d3f570d144d3aca9dbd22e7c1a/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/43fc9911f13537d3f570d144d3aca9dbd22e7c1a/syTableView/Images.xcassets/listIcon/wallet_trade.imageset/wallet_trade@3x.png -------------------------------------------------------------------------------- /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/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/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/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;//** 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/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/SYTableView/SYTableViewCell.m: -------------------------------------------------------------------------------- 1 | // 2 | // SYTableViewCell.m 3 | // SyUtils 4 | // 5 | // Created by 世缘 on 15/8/17. 6 | // Copyright (c) 2015年 shiyuan. All rights reserved. 7 | // 8 | 9 | #import "SYTableViewCell.h" 10 | #import "SYTableViewEntity.h" 11 | #import 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/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/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/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/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/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 10 | 11 | @interface JiugonggeModel : NSObject 12 | @property (nonatomic,strong) NSString *title; 13 | @property (nonatomic,strong) NSString *icon; 14 | @end 15 | -------------------------------------------------------------------------------- /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/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/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/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/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 | -------------------------------------------------------------------------------- /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/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/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/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/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/DemoViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // DemoViewController.m 3 | // SYTableView 4 | // 5 | // Created by 世缘 on 15/9/3. 6 | // Copyright (c) 2015年 shiyuan. All rights reserved. 7 | // 8 | 9 | #import "DemoViewController.h" 10 | #import "SYTableViewHeader.h" 11 | #import "RowViewController.h" 12 | #import "JiugonggeViewController.h" 13 | #import "SectionViewController.h" 14 | #import "DynamicViewController.h" 15 | 16 | @implementation DemoViewController 17 | - (void)viewDidLoad{ 18 | [super viewDidLoad]; 19 | self.title = @"快速创建TableView"; 20 | self.view.backgroundColor = [UIColor whiteColor]; 21 | self.automaticallyAdjustsScrollViewInsets = NO; 22 | 23 | NSMutableArray *arrays = [[NSMutableArray alloc]initWithObjects:@"普通单行tableView",@"九宫格",@"section",@"动态高度", nil]; 24 | NSString *customerName = NSStringFromClass([UITableViewCell class]); 25 | CGRect tbvFrame = CGRectMake(0, 60, self.view.frame.size.width, self.view.frame.size.height); 26 | //初始化 27 | SYTableView *tbv = [[SYTableView alloc]initWithFrame:tbvFrame customerViewName:customerName setupData:^(SYTableViewEntity *ent) { 28 | UITableViewCell *cell = (UITableViewCell *)ent.customView; 29 | cell.userInteractionEnabled = NO; 30 | cell.textLabel.text = arrays[ent.indexPath.row]; 31 | }]; 32 | //设置数据来源 33 | tbv.arrayDatas = arrays; 34 | 35 | //设置选中事件 block设置方式 36 | [tbv setSelectBlock:^(NSIndexPath *indexPath){ 37 | NSLog(@"block click"); 38 | switch (indexPath.row) { 39 | case 0: 40 | { 41 | RowViewController *vc = [[RowViewController alloc]init]; 42 | [self.navigationController pushViewController:vc animated:YES]; 43 | break; 44 | } 45 | case 1: 46 | { 47 | JiugonggeViewController *vc = [[JiugonggeViewController alloc]init]; 48 | [self.navigationController pushViewController:vc animated:YES]; 49 | break; 50 | } 51 | case 2: 52 | { 53 | SectionViewController *vc = [[SectionViewController alloc]init]; 54 | [self.navigationController pushViewController:vc animated:YES]; 55 | break; 56 | } 57 | case 3: 58 | { 59 | DynamicViewController *vc = [[DynamicViewController alloc]init]; 60 | [self.navigationController pushViewController:vc animated:YES]; 61 | break; 62 | } 63 | default: 64 | break; 65 | } 66 | }]; 67 | 68 | //设置选中事件 普通方法方式 69 | tbv.target = self; 70 | tbv.selectedMethod = @selector(tableViewSelected:); 71 | [self.view addSubview:tbv]; 72 | } 73 | 74 | - (void)tableViewSelected:(NSIndexPath *)indexpath{ 75 | NSLog(@"click"); 76 | } 77 | @end 78 | -------------------------------------------------------------------------------- /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/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/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/UI/Demo/ViewController/JiugonggeViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // JiugonggeViewController.m 3 | // SYTableView 4 | // 5 | // Created by 世缘 on 15/9/3. 6 | // Copyright (c) 2015年 shiyuan. All rights reserved. 7 | // 8 | 9 | #import "JiugonggeViewController.h" 10 | //引入 11 | #import "SYTableViewHeader.h" 12 | 13 | #import "JiugonggeView.h" 14 | #import "JiugonggeModel.h" 15 | #import "DemoDataManager.h" 16 | 17 | @implementation JiugonggeViewController 18 | - (void)viewDidLoad{ 19 | [super viewDidLoad]; 20 | self.title = @"九宫格TableView"; 21 | self.view.backgroundColor = [UIColor whiteColor]; 22 | self.automaticallyAdjustsScrollViewInsets = NO; 23 | // [self initWidthJiugonggeList]; 24 | 25 | //自定义间距 26 | [self initWidthJiugonggeListTwo]; 27 | } 28 | 29 | #pragma mark - 初始化默认间距为5的九宫格 30 | - (void)initWidthJiugonggeList{ 31 | CGRect tbvFrame = CGRectMake(0, 60, self.view.frame.size.width, self.view.frame.size.height); 32 | //获取自定义view的className 33 | NSString *rowViewClass = NSStringFromClass([JiugonggeView class]); 34 | //1.初始化tableView columnNumber指定九宫格列数 35 | SYTableView *rowTbv = [[SYTableView alloc]initWithFrame:tbvFrame customerViewName:rowViewClass columnNumber:3 target:self action:@selector(jiugonggeSetupData:)]; 36 | 37 | //初始方式也可以使用block,如下 38 | // SYTableView *rowTbv = [[SYTableView alloc]initWithFrame:tbvFrame customerViewName:rowViewClass columnNumber:3 setupData:^(SYTableViewEntity *ent) { 39 | // 40 | // }]; 41 | 42 | //指定数据 43 | rowTbv.arrayDatas = [NSMutableArray arrayWithArray:[DemoDataManager getJiugonggeData]]; 44 | //行高设置 45 | rowTbv.rowHeight = 100; 46 | [self.view addSubview:rowTbv]; 47 | } 48 | 49 | #pragma mark 可以自定义间距 50 | - (void)initWidthJiugonggeListTwo{ 51 | CGRect tbvFrame = CGRectMake(0, 60, self.view.frame.size.width, self.view.frame.size.height); 52 | //获取自定义view的className 53 | NSString *rowViewClass = NSStringFromClass([JiugonggeView class]); 54 | //1.初始化tableView columnNumber指定九宫格列数 55 | SYTableView *rowTbv = [[SYTableView alloc]initWithFrame:tbvFrame customerViewName:rowViewClass columnNumber:3 leftMargin:5 apartMargin:5 target:self action:@selector(jiugonggeSetupData:)]; 56 | 57 | //初始方式也可以使用block 58 | 59 | //指定数据 60 | rowTbv.arrayDatas = [NSMutableArray arrayWithArray:[DemoDataManager getJiugonggeData]]; 61 | //行高设置 62 | rowTbv.rowHeight = 100; 63 | [self.view addSubview:rowTbv]; 64 | } 65 | 66 | - (void)jiugonggeSetupData:(SYTableViewEntity *)ent{ 67 | JiugonggeView *rowView = (JiugonggeView *)ent.customView;//取出自定义view 68 | JiugonggeModel *model = ent.entity;//取出数据中的实体 69 | //赋值 70 | [rowView.btn_avatar setImage:[UIImage imageNamed:model.icon] forState:UIControlStateNormal]; 71 | rowView.lbl_title.text = model.title; 72 | } 73 | @end 74 | -------------------------------------------------------------------------------- /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/RowViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // RowViewController.m 3 | // SYTableView 4 | // 5 | // Created by 世缘 on 15/9/3. 6 | // Copyright (c) 2015年 shiyuan. All rights reserved. 7 | // 8 | 9 | #import "RowViewController.h" 10 | //引入 11 | #import "SYTableViewHeader.h" 12 | 13 | #import "RowView.h" 14 | #import "RowViewModel.h" 15 | #import "DemoDataManager.h" 16 | @implementation RowViewController 17 | - (void)viewDidLoad{ 18 | [super viewDidLoad]; 19 | self.automaticallyAdjustsScrollViewInsets = NO; 20 | self.view.backgroundColor = [UIColor whiteColor]; 21 | self.title = @"普通tableView"; 22 | //普通单行tabelview使用方式 23 | 24 | //初始方式一 25 | [self initRowListView]; 26 | 27 | //初始方式二block 28 | // [self initRowListViewWithBlock]; 29 | } 30 | 31 | - (void)initRowListView{ 32 | CGRect tbvFrame = CGRectMake(0, 60, self.view.frame.size.width, self.view.frame.size.height); 33 | //获取自定义view的className 34 | NSString *rowViewClass = NSStringFromClass([RowView class]); 35 | //1.初始化tableView 36 | SYTableView *rowTbv = [[SYTableView alloc]initWithFrame:tbvFrame customerViewName:rowViewClass target:self action:@selector(rowListDataSetup:)]; 37 | //指定数据 38 | rowTbv.arrayDatas = [NSMutableArray arrayWithArray:[DemoDataManager getRowViewData]]; 39 | rowTbv.rowHeight = 45;//指定行高 40 | [self.view addSubview:rowTbv]; 41 | } 42 | 43 | //3.为tableView设置数据 44 | - (void)rowListDataSetup:(SYTableViewEntity *)ent{ 45 | RowView *rowView = (RowView *)ent.customView;//取出自定义view 46 | RowViewModel *model = ent.entity;//取出数据中的实体 47 | //赋值 48 | [rowView.btn_avatar setImage:[UIImage imageNamed:model.string_icon] forState:UIControlStateNormal]; 49 | rowView.lbl_title.text = model.string_title; 50 | } 51 | 52 | 53 | - (void)initRowListViewWithBlock{ 54 | CGRect tbvFrame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height); 55 | //获取自定义view的className 56 | NSString *rowViewClass = NSStringFromClass([RowView class]); 57 | //1.初始化tableView 58 | SYTableView *rowTbv = [[SYTableView alloc]initWithFrame:tbvFrame customerViewName:rowViewClass setupData:^(SYTableViewEntity *ent) { 59 | //设置tableView数据 60 | RowView *rowView = (RowView *)ent.customView;//取出自定义view 61 | RowViewModel *model = ent.entity;//取出数据中的实体 62 | //赋值 63 | [rowView.btn_avatar setImage:[UIImage imageNamed:model.string_icon] forState:UIControlStateNormal]; 64 | rowView.lbl_title.text = model.string_title; 65 | }]; 66 | //指定数据 67 | rowTbv.arrayDatas = [NSMutableArray arrayWithArray:[DemoDataManager getRowViewData]]; 68 | [self.view addSubview:rowTbv]; 69 | } 70 | @end 71 | -------------------------------------------------------------------------------- /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/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/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 | -------------------------------------------------------------------------------- /tableview.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiyuan17/syTableView/43fc9911f13537d3f570d144d3aca9dbd22e7c1a/tableview.jpeg --------------------------------------------------------------------------------