├── README.md ├── Stack.xcodeproj ├── project.pbxproj ├── project.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ └── Stack.xccheckout └── xcuserdata │ └── Tomoya_Hirano.xcuserdatad │ ├── xcdebugger │ └── Breakpoints_v2.xcbkptlist │ └── xcschemes │ ├── Stack.xcscheme │ └── xcschememanagement.plist ├── Stack ├── AppDelegate.h ├── AppDelegate.m ├── Asset │ ├── 0.jpg │ ├── 1.jpg │ ├── 2.jpg │ ├── 3.jpg │ ├── 4.jpg │ ├── 5.jpg │ ├── 6.jpg │ └── 7.jpg ├── Base.lproj │ ├── LaunchScreen.xib │ └── Main.storyboard ├── Images.xcassets │ └── AppIcon.appiconset │ │ └── Contents.json ├── StackTableView │ ├── StackTableView.h │ └── StackTableView.m ├── Supporting Files │ ├── Info.plist │ └── main.m ├── ViewController.h └── ViewController.m ├── StackTests ├── StackTests.m └── Supporting Files │ └── Info.plist └── sample.gif /README.md: -------------------------------------------------------------------------------- 1 | # StackTableView 2 | UITableView with stack animation. 3 | 4 | ![](https://github.com/noppefoxwolf/StackTableView/raw/master/sample.gif) 5 | 6 | # Usage is simple 7 | You replace UITableView with StackTableView.(StackTableView support for initWithFrame and Storyboard.) 8 | 9 | ## LICENCE 10 | StackTableView is available under the MIT license. 11 | -------------------------------------------------------------------------------- /Stack.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | archiveVersion 6 | 1 7 | classes 8 | 9 | objectVersion 10 | 46 11 | objects 12 | 13 | D71F95F21AFB809500C4341E 14 | 15 | children 16 | 17 | D71F95FD1AFB809500C4341E 18 | D71F96171AFB809600C4341E 19 | D71F95FC1AFB809500C4341E 20 | 21 | isa 22 | PBXGroup 23 | sourceTree 24 | <group> 25 | 26 | D71F95F31AFB809500C4341E 27 | 28 | attributes 29 | 30 | LastUpgradeCheck 31 | 0630 32 | ORGANIZATIONNAME 33 | Tomoya_Hirano 34 | TargetAttributes 35 | 36 | D71F95FA1AFB809500C4341E 37 | 38 | CreatedOnToolsVersion 39 | 6.3.1 40 | 41 | D71F96131AFB809600C4341E 42 | 43 | CreatedOnToolsVersion 44 | 6.3.1 45 | TestTargetID 46 | D71F95FA1AFB809500C4341E 47 | 48 | 49 | 50 | buildConfigurationList 51 | D71F95F61AFB809500C4341E 52 | compatibilityVersion 53 | Xcode 3.2 54 | developmentRegion 55 | English 56 | hasScannedForEncodings 57 | 0 58 | isa 59 | PBXProject 60 | knownRegions 61 | 62 | en 63 | Base 64 | 65 | mainGroup 66 | D71F95F21AFB809500C4341E 67 | productRefGroup 68 | D71F95FC1AFB809500C4341E 69 | projectDirPath 70 | 71 | projectReferences 72 | 73 | projectRoot 74 | 75 | targets 76 | 77 | D71F95FA1AFB809500C4341E 78 | D71F96131AFB809600C4341E 79 | 80 | 81 | D71F95F61AFB809500C4341E 82 | 83 | buildConfigurations 84 | 85 | D71F961C1AFB809600C4341E 86 | D71F961D1AFB809600C4341E 87 | 88 | defaultConfigurationIsVisible 89 | 0 90 | defaultConfigurationName 91 | Release 92 | isa 93 | XCConfigurationList 94 | 95 | D71F95F71AFB809500C4341E 96 | 97 | buildActionMask 98 | 2147483647 99 | files 100 | 101 | D71F96291AFB8BF800C4341E 102 | D71F96071AFB809500C4341E 103 | D71F96041AFB809500C4341E 104 | D71F96011AFB809500C4341E 105 | 106 | isa 107 | PBXSourcesBuildPhase 108 | runOnlyForDeploymentPostprocessing 109 | 0 110 | 111 | D71F95F81AFB809500C4341E 112 | 113 | buildActionMask 114 | 2147483647 115 | files 116 | 117 | isa 118 | PBXFrameworksBuildPhase 119 | runOnlyForDeploymentPostprocessing 120 | 0 121 | 122 | D71F95F91AFB809500C4341E 123 | 124 | buildActionMask 125 | 2147483647 126 | files 127 | 128 | D7289C9E1AFCD50F00B1873D 129 | D7289C9B1AFCD50F00B1873D 130 | D7289C991AFCD50F00B1873D 131 | D7289C971AFCD50F00B1873D 132 | D7289C9C1AFCD50F00B1873D 133 | D7289C9D1AFCD50F00B1873D 134 | D71F960A1AFB809500C4341E 135 | D71F960F1AFB809600C4341E 136 | D71F960C1AFB809500C4341E 137 | D7289C9A1AFCD50F00B1873D 138 | D7289C981AFCD50F00B1873D 139 | 140 | isa 141 | PBXResourcesBuildPhase 142 | runOnlyForDeploymentPostprocessing 143 | 0 144 | 145 | D71F95FA1AFB809500C4341E 146 | 147 | buildConfigurationList 148 | D71F961E1AFB809600C4341E 149 | buildPhases 150 | 151 | D71F95F71AFB809500C4341E 152 | D71F95F81AFB809500C4341E 153 | D71F95F91AFB809500C4341E 154 | 155 | buildRules 156 | 157 | dependencies 158 | 159 | isa 160 | PBXNativeTarget 161 | name 162 | Stack 163 | productName 164 | Stack 165 | productReference 166 | D71F95FB1AFB809500C4341E 167 | productType 168 | com.apple.product-type.application 169 | 170 | D71F95FB1AFB809500C4341E 171 | 172 | explicitFileType 173 | wrapper.application 174 | includeInIndex 175 | 0 176 | isa 177 | PBXFileReference 178 | path 179 | Stack.app 180 | sourceTree 181 | BUILT_PRODUCTS_DIR 182 | 183 | D71F95FC1AFB809500C4341E 184 | 185 | children 186 | 187 | D71F95FB1AFB809500C4341E 188 | D71F96141AFB809600C4341E 189 | 190 | isa 191 | PBXGroup 192 | name 193 | Products 194 | sourceTree 195 | <group> 196 | 197 | D71F95FD1AFB809500C4341E 198 | 199 | children 200 | 201 | D7C04DA81AFD00410056957E 202 | D7289C7E1AFCD17500B1873D 203 | D71F96021AFB809500C4341E 204 | D71F96031AFB809500C4341E 205 | D71F96051AFB809500C4341E 206 | D71F96061AFB809500C4341E 207 | D71F96081AFB809500C4341E 208 | D71F960B1AFB809500C4341E 209 | D71F960D1AFB809500C4341E 210 | D71F95FE1AFB809500C4341E 211 | 212 | isa 213 | PBXGroup 214 | path 215 | Stack 216 | sourceTree 217 | <group> 218 | 219 | D71F95FE1AFB809500C4341E 220 | 221 | children 222 | 223 | D71F95FF1AFB809500C4341E 224 | D71F96001AFB809500C4341E 225 | 226 | isa 227 | PBXGroup 228 | name 229 | Supporting Files 230 | path 231 | Supporting Files 232 | sourceTree 233 | <group> 234 | 235 | D71F95FF1AFB809500C4341E 236 | 237 | isa 238 | PBXFileReference 239 | lastKnownFileType 240 | text.plist.xml 241 | path 242 | Info.plist 243 | sourceTree 244 | <group> 245 | 246 | D71F96001AFB809500C4341E 247 | 248 | isa 249 | PBXFileReference 250 | lastKnownFileType 251 | sourcecode.c.objc 252 | path 253 | main.m 254 | sourceTree 255 | <group> 256 | 257 | D71F96011AFB809500C4341E 258 | 259 | fileRef 260 | D71F96001AFB809500C4341E 261 | isa 262 | PBXBuildFile 263 | 264 | D71F96021AFB809500C4341E 265 | 266 | isa 267 | PBXFileReference 268 | lastKnownFileType 269 | sourcecode.c.h 270 | path 271 | AppDelegate.h 272 | sourceTree 273 | <group> 274 | 275 | D71F96031AFB809500C4341E 276 | 277 | isa 278 | PBXFileReference 279 | lastKnownFileType 280 | sourcecode.c.objc 281 | path 282 | AppDelegate.m 283 | sourceTree 284 | <group> 285 | 286 | D71F96041AFB809500C4341E 287 | 288 | fileRef 289 | D71F96031AFB809500C4341E 290 | isa 291 | PBXBuildFile 292 | 293 | D71F96051AFB809500C4341E 294 | 295 | isa 296 | PBXFileReference 297 | lastKnownFileType 298 | sourcecode.c.h 299 | path 300 | ViewController.h 301 | sourceTree 302 | <group> 303 | 304 | D71F96061AFB809500C4341E 305 | 306 | isa 307 | PBXFileReference 308 | lastKnownFileType 309 | sourcecode.c.objc 310 | path 311 | ViewController.m 312 | sourceTree 313 | <group> 314 | 315 | D71F96071AFB809500C4341E 316 | 317 | fileRef 318 | D71F96061AFB809500C4341E 319 | isa 320 | PBXBuildFile 321 | 322 | D71F96081AFB809500C4341E 323 | 324 | children 325 | 326 | D71F96091AFB809500C4341E 327 | 328 | isa 329 | PBXVariantGroup 330 | name 331 | Main.storyboard 332 | path 333 | . 334 | sourceTree 335 | <group> 336 | 337 | D71F96091AFB809500C4341E 338 | 339 | isa 340 | PBXFileReference 341 | lastKnownFileType 342 | file.storyboard 343 | name 344 | Base 345 | path 346 | Base.lproj/Main.storyboard 347 | sourceTree 348 | <group> 349 | 350 | D71F960A1AFB809500C4341E 351 | 352 | fileRef 353 | D71F96081AFB809500C4341E 354 | isa 355 | PBXBuildFile 356 | 357 | D71F960B1AFB809500C4341E 358 | 359 | isa 360 | PBXFileReference 361 | lastKnownFileType 362 | folder.assetcatalog 363 | path 364 | Images.xcassets 365 | sourceTree 366 | <group> 367 | 368 | D71F960C1AFB809500C4341E 369 | 370 | fileRef 371 | D71F960B1AFB809500C4341E 372 | isa 373 | PBXBuildFile 374 | 375 | D71F960D1AFB809500C4341E 376 | 377 | children 378 | 379 | D71F960E1AFB809600C4341E 380 | 381 | isa 382 | PBXVariantGroup 383 | name 384 | LaunchScreen.xib 385 | path 386 | . 387 | sourceTree 388 | <group> 389 | 390 | D71F960E1AFB809600C4341E 391 | 392 | isa 393 | PBXFileReference 394 | lastKnownFileType 395 | file.xib 396 | name 397 | Base 398 | path 399 | Base.lproj/LaunchScreen.xib 400 | sourceTree 401 | <group> 402 | 403 | D71F960F1AFB809600C4341E 404 | 405 | fileRef 406 | D71F960D1AFB809500C4341E 407 | isa 408 | PBXBuildFile 409 | 410 | D71F96101AFB809600C4341E 411 | 412 | buildActionMask 413 | 2147483647 414 | files 415 | 416 | D71F961B1AFB809600C4341E 417 | 418 | isa 419 | PBXSourcesBuildPhase 420 | runOnlyForDeploymentPostprocessing 421 | 0 422 | 423 | D71F96111AFB809600C4341E 424 | 425 | buildActionMask 426 | 2147483647 427 | files 428 | 429 | isa 430 | PBXFrameworksBuildPhase 431 | runOnlyForDeploymentPostprocessing 432 | 0 433 | 434 | D71F96121AFB809600C4341E 435 | 436 | buildActionMask 437 | 2147483647 438 | files 439 | 440 | isa 441 | PBXResourcesBuildPhase 442 | runOnlyForDeploymentPostprocessing 443 | 0 444 | 445 | D71F96131AFB809600C4341E 446 | 447 | buildConfigurationList 448 | D71F96211AFB809600C4341E 449 | buildPhases 450 | 451 | D71F96101AFB809600C4341E 452 | D71F96111AFB809600C4341E 453 | D71F96121AFB809600C4341E 454 | 455 | buildRules 456 | 457 | dependencies 458 | 459 | D71F96161AFB809600C4341E 460 | 461 | isa 462 | PBXNativeTarget 463 | name 464 | StackTests 465 | productName 466 | StackTests 467 | productReference 468 | D71F96141AFB809600C4341E 469 | productType 470 | com.apple.product-type.bundle.unit-test 471 | 472 | D71F96141AFB809600C4341E 473 | 474 | explicitFileType 475 | wrapper.cfbundle 476 | includeInIndex 477 | 0 478 | isa 479 | PBXFileReference 480 | path 481 | StackTests.xctest 482 | sourceTree 483 | BUILT_PRODUCTS_DIR 484 | 485 | D71F96151AFB809600C4341E 486 | 487 | containerPortal 488 | D71F95F31AFB809500C4341E 489 | isa 490 | PBXContainerItemProxy 491 | proxyType 492 | 1 493 | remoteGlobalIDString 494 | D71F95FA1AFB809500C4341E 495 | remoteInfo 496 | Stack 497 | 498 | D71F96161AFB809600C4341E 499 | 500 | isa 501 | PBXTargetDependency 502 | target 503 | D71F95FA1AFB809500C4341E 504 | targetProxy 505 | D71F96151AFB809600C4341E 506 | 507 | D71F96171AFB809600C4341E 508 | 509 | children 510 | 511 | D71F961A1AFB809600C4341E 512 | D71F96181AFB809600C4341E 513 | 514 | isa 515 | PBXGroup 516 | path 517 | StackTests 518 | sourceTree 519 | <group> 520 | 521 | D71F96181AFB809600C4341E 522 | 523 | children 524 | 525 | D71F96191AFB809600C4341E 526 | 527 | isa 528 | PBXGroup 529 | name 530 | Supporting Files 531 | path 532 | Supporting Files 533 | sourceTree 534 | <group> 535 | 536 | D71F96191AFB809600C4341E 537 | 538 | isa 539 | PBXFileReference 540 | lastKnownFileType 541 | text.plist.xml 542 | path 543 | Info.plist 544 | sourceTree 545 | <group> 546 | 547 | D71F961A1AFB809600C4341E 548 | 549 | isa 550 | PBXFileReference 551 | lastKnownFileType 552 | sourcecode.c.objc 553 | path 554 | StackTests.m 555 | sourceTree 556 | <group> 557 | 558 | D71F961B1AFB809600C4341E 559 | 560 | fileRef 561 | D71F961A1AFB809600C4341E 562 | isa 563 | PBXBuildFile 564 | 565 | D71F961C1AFB809600C4341E 566 | 567 | buildSettings 568 | 569 | ALWAYS_SEARCH_USER_PATHS 570 | NO 571 | CLANG_CXX_LANGUAGE_STANDARD 572 | gnu++0x 573 | CLANG_CXX_LIBRARY 574 | libc++ 575 | CLANG_ENABLE_MODULES 576 | YES 577 | CLANG_ENABLE_OBJC_ARC 578 | YES 579 | CLANG_WARN_BOOL_CONVERSION 580 | YES 581 | CLANG_WARN_CONSTANT_CONVERSION 582 | YES 583 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE 584 | YES_ERROR 585 | CLANG_WARN_EMPTY_BODY 586 | YES 587 | CLANG_WARN_ENUM_CONVERSION 588 | YES 589 | CLANG_WARN_INT_CONVERSION 590 | YES 591 | CLANG_WARN_OBJC_ROOT_CLASS 592 | YES_ERROR 593 | CLANG_WARN_UNREACHABLE_CODE 594 | YES 595 | CLANG_WARN__DUPLICATE_METHOD_MATCH 596 | YES 597 | CODE_SIGN_IDENTITY[sdk=iphoneos*] 598 | iPhone Developer 599 | COPY_PHASE_STRIP 600 | NO 601 | DEBUG_INFORMATION_FORMAT 602 | dwarf-with-dsym 603 | ENABLE_STRICT_OBJC_MSGSEND 604 | YES 605 | GCC_C_LANGUAGE_STANDARD 606 | gnu99 607 | GCC_DYNAMIC_NO_PIC 608 | NO 609 | GCC_NO_COMMON_BLOCKS 610 | YES 611 | GCC_OPTIMIZATION_LEVEL 612 | 0 613 | GCC_PREPROCESSOR_DEFINITIONS 614 | 615 | DEBUG=1 616 | $(inherited) 617 | 618 | GCC_SYMBOLS_PRIVATE_EXTERN 619 | NO 620 | GCC_WARN_64_TO_32_BIT_CONVERSION 621 | YES 622 | GCC_WARN_ABOUT_RETURN_TYPE 623 | YES_ERROR 624 | GCC_WARN_UNDECLARED_SELECTOR 625 | YES 626 | GCC_WARN_UNINITIALIZED_AUTOS 627 | YES_AGGRESSIVE 628 | GCC_WARN_UNUSED_FUNCTION 629 | YES 630 | GCC_WARN_UNUSED_VARIABLE 631 | YES 632 | IPHONEOS_DEPLOYMENT_TARGET 633 | 8.3 634 | MTL_ENABLE_DEBUG_INFO 635 | YES 636 | ONLY_ACTIVE_ARCH 637 | YES 638 | SDKROOT 639 | iphoneos 640 | 641 | isa 642 | XCBuildConfiguration 643 | name 644 | Debug 645 | 646 | D71F961D1AFB809600C4341E 647 | 648 | buildSettings 649 | 650 | ALWAYS_SEARCH_USER_PATHS 651 | NO 652 | CLANG_CXX_LANGUAGE_STANDARD 653 | gnu++0x 654 | CLANG_CXX_LIBRARY 655 | libc++ 656 | CLANG_ENABLE_MODULES 657 | YES 658 | CLANG_ENABLE_OBJC_ARC 659 | YES 660 | CLANG_WARN_BOOL_CONVERSION 661 | YES 662 | CLANG_WARN_CONSTANT_CONVERSION 663 | YES 664 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE 665 | YES_ERROR 666 | CLANG_WARN_EMPTY_BODY 667 | YES 668 | CLANG_WARN_ENUM_CONVERSION 669 | YES 670 | CLANG_WARN_INT_CONVERSION 671 | YES 672 | CLANG_WARN_OBJC_ROOT_CLASS 673 | YES_ERROR 674 | CLANG_WARN_UNREACHABLE_CODE 675 | YES 676 | CLANG_WARN__DUPLICATE_METHOD_MATCH 677 | YES 678 | CODE_SIGN_IDENTITY[sdk=iphoneos*] 679 | iPhone Developer 680 | COPY_PHASE_STRIP 681 | NO 682 | DEBUG_INFORMATION_FORMAT 683 | dwarf-with-dsym 684 | ENABLE_NS_ASSERTIONS 685 | NO 686 | ENABLE_STRICT_OBJC_MSGSEND 687 | YES 688 | GCC_C_LANGUAGE_STANDARD 689 | gnu99 690 | GCC_NO_COMMON_BLOCKS 691 | YES 692 | GCC_WARN_64_TO_32_BIT_CONVERSION 693 | YES 694 | GCC_WARN_ABOUT_RETURN_TYPE 695 | YES_ERROR 696 | GCC_WARN_UNDECLARED_SELECTOR 697 | YES 698 | GCC_WARN_UNINITIALIZED_AUTOS 699 | YES_AGGRESSIVE 700 | GCC_WARN_UNUSED_FUNCTION 701 | YES 702 | GCC_WARN_UNUSED_VARIABLE 703 | YES 704 | IPHONEOS_DEPLOYMENT_TARGET 705 | 8.3 706 | MTL_ENABLE_DEBUG_INFO 707 | NO 708 | SDKROOT 709 | iphoneos 710 | VALIDATE_PRODUCT 711 | YES 712 | 713 | isa 714 | XCBuildConfiguration 715 | name 716 | Release 717 | 718 | D71F961E1AFB809600C4341E 719 | 720 | buildConfigurations 721 | 722 | D71F961F1AFB809600C4341E 723 | D71F96201AFB809600C4341E 724 | 725 | defaultConfigurationIsVisible 726 | 0 727 | defaultConfigurationName 728 | Release 729 | isa 730 | XCConfigurationList 731 | 732 | D71F961F1AFB809600C4341E 733 | 734 | buildSettings 735 | 736 | ASSETCATALOG_COMPILER_APPICON_NAME 737 | AppIcon 738 | INFOPLIST_FILE 739 | Stack/Supporting Files/Info.plist 740 | LD_RUNPATH_SEARCH_PATHS 741 | $(inherited) @executable_path/Frameworks 742 | PRODUCT_NAME 743 | $(TARGET_NAME) 744 | 745 | isa 746 | XCBuildConfiguration 747 | name 748 | Debug 749 | 750 | D71F96201AFB809600C4341E 751 | 752 | buildSettings 753 | 754 | ASSETCATALOG_COMPILER_APPICON_NAME 755 | AppIcon 756 | INFOPLIST_FILE 757 | Stack/Supporting Files/Info.plist 758 | LD_RUNPATH_SEARCH_PATHS 759 | $(inherited) @executable_path/Frameworks 760 | PRODUCT_NAME 761 | $(TARGET_NAME) 762 | 763 | isa 764 | XCBuildConfiguration 765 | name 766 | Release 767 | 768 | D71F96211AFB809600C4341E 769 | 770 | buildConfigurations 771 | 772 | D71F96221AFB809600C4341E 773 | D71F96231AFB809600C4341E 774 | 775 | defaultConfigurationIsVisible 776 | 0 777 | defaultConfigurationName 778 | Release 779 | isa 780 | XCConfigurationList 781 | 782 | D71F96221AFB809600C4341E 783 | 784 | buildSettings 785 | 786 | BUNDLE_LOADER 787 | $(TEST_HOST) 788 | FRAMEWORK_SEARCH_PATHS 789 | 790 | $(SDKROOT)/Developer/Library/Frameworks 791 | $(inherited) 792 | 793 | GCC_PREPROCESSOR_DEFINITIONS 794 | 795 | DEBUG=1 796 | $(inherited) 797 | 798 | INFOPLIST_FILE 799 | StackTests/Supporting Files/Info.plist 800 | LD_RUNPATH_SEARCH_PATHS 801 | $(inherited) @executable_path/Frameworks @loader_path/Frameworks 802 | PRODUCT_NAME 803 | $(TARGET_NAME) 804 | TEST_HOST 805 | $(BUILT_PRODUCTS_DIR)/Stack.app/Stack 806 | 807 | isa 808 | XCBuildConfiguration 809 | name 810 | Debug 811 | 812 | D71F96231AFB809600C4341E 813 | 814 | buildSettings 815 | 816 | BUNDLE_LOADER 817 | $(TEST_HOST) 818 | FRAMEWORK_SEARCH_PATHS 819 | 820 | $(SDKROOT)/Developer/Library/Frameworks 821 | $(inherited) 822 | 823 | INFOPLIST_FILE 824 | StackTests/Supporting Files/Info.plist 825 | LD_RUNPATH_SEARCH_PATHS 826 | $(inherited) @executable_path/Frameworks @loader_path/Frameworks 827 | PRODUCT_NAME 828 | $(TARGET_NAME) 829 | TEST_HOST 830 | $(BUILT_PRODUCTS_DIR)/Stack.app/Stack 831 | 832 | isa 833 | XCBuildConfiguration 834 | name 835 | Release 836 | 837 | D71F96271AFB8BF800C4341E 838 | 839 | fileEncoding 840 | 4 841 | isa 842 | PBXFileReference 843 | lastKnownFileType 844 | sourcecode.c.h 845 | path 846 | StackTableView.h 847 | sourceTree 848 | <group> 849 | 850 | D71F96281AFB8BF800C4341E 851 | 852 | fileEncoding 853 | 4 854 | isa 855 | PBXFileReference 856 | lastKnownFileType 857 | sourcecode.c.objc 858 | path 859 | StackTableView.m 860 | sourceTree 861 | <group> 862 | 863 | D71F96291AFB8BF800C4341E 864 | 865 | fileRef 866 | D71F96281AFB8BF800C4341E 867 | isa 868 | PBXBuildFile 869 | 870 | D7289C7E1AFCD17500B1873D 871 | 872 | children 873 | 874 | D7289C8F1AFCD50F00B1873D 875 | D7289C901AFCD50F00B1873D 876 | D7289C911AFCD50F00B1873D 877 | D7289C921AFCD50F00B1873D 878 | D7289C931AFCD50F00B1873D 879 | D7289C941AFCD50F00B1873D 880 | D7289C951AFCD50F00B1873D 881 | D7289C961AFCD50F00B1873D 882 | 883 | isa 884 | PBXGroup 885 | name 886 | Asset 887 | path 888 | Asset 889 | sourceTree 890 | <group> 891 | 892 | D7289C8F1AFCD50F00B1873D 893 | 894 | isa 895 | PBXFileReference 896 | lastKnownFileType 897 | image.jpeg 898 | path 899 | 0.jpg 900 | sourceTree 901 | <group> 902 | 903 | D7289C901AFCD50F00B1873D 904 | 905 | isa 906 | PBXFileReference 907 | lastKnownFileType 908 | image.jpeg 909 | path 910 | 1.jpg 911 | sourceTree 912 | <group> 913 | 914 | D7289C911AFCD50F00B1873D 915 | 916 | isa 917 | PBXFileReference 918 | lastKnownFileType 919 | image.jpeg 920 | path 921 | 2.jpg 922 | sourceTree 923 | <group> 924 | 925 | D7289C921AFCD50F00B1873D 926 | 927 | isa 928 | PBXFileReference 929 | lastKnownFileType 930 | image.jpeg 931 | path 932 | 3.jpg 933 | sourceTree 934 | <group> 935 | 936 | D7289C931AFCD50F00B1873D 937 | 938 | isa 939 | PBXFileReference 940 | lastKnownFileType 941 | image.jpeg 942 | path 943 | 4.jpg 944 | sourceTree 945 | <group> 946 | 947 | D7289C941AFCD50F00B1873D 948 | 949 | isa 950 | PBXFileReference 951 | lastKnownFileType 952 | image.jpeg 953 | path 954 | 5.jpg 955 | sourceTree 956 | <group> 957 | 958 | D7289C951AFCD50F00B1873D 959 | 960 | isa 961 | PBXFileReference 962 | lastKnownFileType 963 | image.jpeg 964 | path 965 | 6.jpg 966 | sourceTree 967 | <group> 968 | 969 | D7289C961AFCD50F00B1873D 970 | 971 | isa 972 | PBXFileReference 973 | lastKnownFileType 974 | image.jpeg 975 | path 976 | 7.jpg 977 | sourceTree 978 | <group> 979 | 980 | D7289C971AFCD50F00B1873D 981 | 982 | fileRef 983 | D7289C8F1AFCD50F00B1873D 984 | isa 985 | PBXBuildFile 986 | 987 | D7289C981AFCD50F00B1873D 988 | 989 | fileRef 990 | D7289C901AFCD50F00B1873D 991 | isa 992 | PBXBuildFile 993 | 994 | D7289C991AFCD50F00B1873D 995 | 996 | fileRef 997 | D7289C911AFCD50F00B1873D 998 | isa 999 | PBXBuildFile 1000 | 1001 | D7289C9A1AFCD50F00B1873D 1002 | 1003 | fileRef 1004 | D7289C921AFCD50F00B1873D 1005 | isa 1006 | PBXBuildFile 1007 | 1008 | D7289C9B1AFCD50F00B1873D 1009 | 1010 | fileRef 1011 | D7289C931AFCD50F00B1873D 1012 | isa 1013 | PBXBuildFile 1014 | 1015 | D7289C9C1AFCD50F00B1873D 1016 | 1017 | fileRef 1018 | D7289C941AFCD50F00B1873D 1019 | isa 1020 | PBXBuildFile 1021 | 1022 | D7289C9D1AFCD50F00B1873D 1023 | 1024 | fileRef 1025 | D7289C951AFCD50F00B1873D 1026 | isa 1027 | PBXBuildFile 1028 | 1029 | D7289C9E1AFCD50F00B1873D 1030 | 1031 | fileRef 1032 | D7289C961AFCD50F00B1873D 1033 | isa 1034 | PBXBuildFile 1035 | 1036 | D7C04DA81AFD00410056957E 1037 | 1038 | children 1039 | 1040 | D71F96271AFB8BF800C4341E 1041 | D71F96281AFB8BF800C4341E 1042 | 1043 | isa 1044 | PBXGroup 1045 | name 1046 | StackTableView 1047 | path 1048 | StackTableView 1049 | sourceTree 1050 | <group> 1051 | 1052 | 1053 | rootObject 1054 | D71F95F31AFB809500C4341E 1055 | 1056 | 1057 | -------------------------------------------------------------------------------- /Stack.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Stack.xcodeproj/project.xcworkspace/xcshareddata/Stack.xccheckout: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDESourceControlProjectFavoriteDictionaryKey 6 | 7 | IDESourceControlProjectIdentifier 8 | 9193C2CC-D7AE-4712-907F-F0855590FDD8 9 | IDESourceControlProjectName 10 | Stack 11 | IDESourceControlProjectOriginsDictionary 12 | 13 | 84694976197C747D20B0EBB6A4CD970B446E17AD 14 | https://github.com/noppefoxwolf/StackTableView.git 15 | 16 | IDESourceControlProjectPath 17 | Stack.xcodeproj 18 | IDESourceControlProjectRelativeInstallPathDictionary 19 | 20 | 84694976197C747D20B0EBB6A4CD970B446E17AD 21 | ../.. 22 | 23 | IDESourceControlProjectURL 24 | https://github.com/noppefoxwolf/StackTableView.git 25 | IDESourceControlProjectVersion 26 | 111 27 | IDESourceControlProjectWCCIdentifier 28 | 84694976197C747D20B0EBB6A4CD970B446E17AD 29 | IDESourceControlProjectWCConfigurations 30 | 31 | 32 | IDESourceControlRepositoryExtensionIdentifierKey 33 | public.vcs.git 34 | IDESourceControlWCCIdentifierKey 35 | 84694976197C747D20B0EBB6A4CD970B446E17AD 36 | IDESourceControlWCCName 37 | Stack 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /Stack.xcodeproj/xcuserdata/Tomoya_Hirano.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /Stack.xcodeproj/xcuserdata/Tomoya_Hirano.xcuserdatad/xcschemes/Stack.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 | -------------------------------------------------------------------------------- /Stack.xcodeproj/xcuserdata/Tomoya_Hirano.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | Stack.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | D71F95FA1AFB809500C4341E 16 | 17 | primary 18 | 19 | 20 | D71F96131AFB809600C4341E 21 | 22 | primary 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /Stack/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // Stack 4 | // 5 | // Created by Tomoya_Hirano on 5/7/15. 6 | // Copyright (c) 2015 Tomoya_Hirano. 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 | -------------------------------------------------------------------------------- /Stack/AppDelegate.m: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.m 3 | // Stack 4 | // 5 | // Created by Tomoya_Hirano on 5/7/15. 6 | // Copyright (c) 2015 Tomoya_Hirano. All rights reserved. 7 | // 8 | 9 | #import "AppDelegate.h" 10 | 11 | @interface AppDelegate () 12 | 13 | @end 14 | 15 | @implementation AppDelegate 16 | 17 | 18 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 19 | // Override point for customization after application launch. 20 | return YES; 21 | } 22 | 23 | - (void)applicationWillResignActive:(UIApplication *)application { 24 | // 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. 25 | // 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. 26 | } 27 | 28 | - (void)applicationDidEnterBackground:(UIApplication *)application { 29 | // 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. 30 | // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. 31 | } 32 | 33 | - (void)applicationWillEnterForeground:(UIApplication *)application { 34 | // 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. 35 | } 36 | 37 | - (void)applicationDidBecomeActive:(UIApplication *)application { 38 | // 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. 39 | } 40 | 41 | - (void)applicationWillTerminate:(UIApplication *)application { 42 | // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. 43 | } 44 | 45 | @end 46 | -------------------------------------------------------------------------------- /Stack/Asset/0.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noppefoxwolf/StackTableView/1fa201388eec13e2f37011438fc605971b0f4719/Stack/Asset/0.jpg -------------------------------------------------------------------------------- /Stack/Asset/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noppefoxwolf/StackTableView/1fa201388eec13e2f37011438fc605971b0f4719/Stack/Asset/1.jpg -------------------------------------------------------------------------------- /Stack/Asset/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noppefoxwolf/StackTableView/1fa201388eec13e2f37011438fc605971b0f4719/Stack/Asset/2.jpg -------------------------------------------------------------------------------- /Stack/Asset/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noppefoxwolf/StackTableView/1fa201388eec13e2f37011438fc605971b0f4719/Stack/Asset/3.jpg -------------------------------------------------------------------------------- /Stack/Asset/4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noppefoxwolf/StackTableView/1fa201388eec13e2f37011438fc605971b0f4719/Stack/Asset/4.jpg -------------------------------------------------------------------------------- /Stack/Asset/5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noppefoxwolf/StackTableView/1fa201388eec13e2f37011438fc605971b0f4719/Stack/Asset/5.jpg -------------------------------------------------------------------------------- /Stack/Asset/6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noppefoxwolf/StackTableView/1fa201388eec13e2f37011438fc605971b0f4719/Stack/Asset/6.jpg -------------------------------------------------------------------------------- /Stack/Asset/7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noppefoxwolf/StackTableView/1fa201388eec13e2f37011438fc605971b0f4719/Stack/Asset/7.jpg -------------------------------------------------------------------------------- /Stack/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 | -------------------------------------------------------------------------------- /Stack/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 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /Stack/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 | } -------------------------------------------------------------------------------- /Stack/StackTableView/StackTableView.h: -------------------------------------------------------------------------------- 1 | // 2 | // StackTableView.h 3 | // Stack 4 | // 5 | // Created by Tomoya_Hirano on 5/7/15. 6 | // Copyright (c) 2015 Tomoya_Hirano. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | //extend delegate 13 | @class StackTableView; 14 | @protocol StackTableViewDelegate 15 | - (void)scrollViewDidScroll:(UIScrollView *)scrollView; 16 | @end 17 | @protocol StackTableViewDataSource 18 | @end 19 | 20 | @interface StackTableView : UITableView 21 | @end -------------------------------------------------------------------------------- /Stack/StackTableView/StackTableView.m: -------------------------------------------------------------------------------- 1 | // 2 | // StackTableView.m 3 | // Stack 4 | // 5 | // Created by Tomoya_Hirano on 5/7/15. 6 | // Copyright (c) 2015 Tomoya_Hirano. All rights reserved. 7 | // 8 | 9 | #import "StackTableView.h" 10 | 11 | @interface StackTableView () 12 | @end 13 | 14 | @implementation StackTableView{ 15 | __weak id _mDelegate; 16 | __weak id _mDataSource; 17 | NSIndexPath*goastIndex; 18 | UIImageView*_goastView; 19 | } 20 | 21 | - (id)initWithFrame:(CGRect)frame style:(UITableViewStyle)style{ 22 | self = [super initWithFrame:frame style:style]; 23 | if (self) { 24 | [self setup]; 25 | } 26 | return self; 27 | } 28 | 29 | - (id)initWithCoder:(NSCoder *)aDecoder{ 30 | self = [super initWithCoder:aDecoder]; 31 | if (self) { 32 | [self setup]; 33 | } 34 | return self; 35 | } 36 | 37 | - (void)setup{ 38 | self.delegate = self; 39 | self.dataSource = self; 40 | _goastView = [UIImageView new]; 41 | _goastView.contentMode = UIViewContentModeTop|UIViewContentModeScaleAspectFit; 42 | self.backgroundView = _goastView; 43 | } 44 | 45 | - (void)setDelegate:(id)delegate{ 46 | if (delegate == self) { 47 | [super setDelegate:delegate]; 48 | } else { 49 | _mDelegate = (id)delegate; 50 | } 51 | } 52 | 53 | - (void)setDataSource:(id)dataSource{ 54 | if (dataSource == self) { 55 | [super setDataSource:dataSource]; 56 | }else{ 57 | _mDataSource = (id)dataSource; 58 | } 59 | } 60 | 61 | #pragma mark - UITableViewDelegate 62 | - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{ 63 | if ([_mDelegate respondsToSelector:@selector(tableView:heightForRowAtIndexPath:)]) { 64 | return [_mDelegate tableView:tableView heightForRowAtIndexPath:indexPath]; 65 | } 66 | return 44; 67 | } 68 | 69 | - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ 70 | if ([_mDelegate respondsToSelector:@selector(tableView:didSelectRowAtIndexPath:)]) { 71 | return [_mDelegate tableView:tableView didSelectRowAtIndexPath:indexPath]; 72 | } 73 | } 74 | 75 | #pragma mark - UITableViewDataSource 76 | 77 | - (UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ 78 | if ([_mDataSource respondsToSelector:@selector(tableView:cellForRowAtIndexPath:)]) { 79 | UITableViewCell*cell = [_mDataSource tableView:tableView cellForRowAtIndexPath:indexPath]; 80 | cell.clipsToBounds = true; 81 | return cell; 82 | } 83 | return nil; 84 | } 85 | 86 | - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ 87 | if ([_mDataSource respondsToSelector:@selector(tableView:numberOfRowsInSection:)]) { 88 | return [_mDataSource tableView:tableView numberOfRowsInSection:section]; 89 | } 90 | return 0; 91 | } 92 | 93 | #pragma mark - UIScrollViewDelegate 94 | - (void)scrollViewDidScroll:(UIScrollView *)scrollView{ 95 | NSArray *paths = [self indexPathsForVisibleRows]; 96 | for (NSIndexPath *path in paths) { 97 | UITableViewCell*cell = [self cellForRowAtIndexPath:path]; 98 | cell.alpha = 1; 99 | } 100 | 101 | NSIndexPath *index = [paths firstObject]; 102 | if ([self indexPathForRowAtPoint:scrollView.contentOffset]) { 103 | UITableViewCell*cell = [self cellForRowAtIndexPath:index]; 104 | if (goastIndex != index || index.row == 0) { 105 | NSLog(@"capture"); 106 | _goastView.image = [self imageFromView:cell]; 107 | } 108 | cell.alpha = 0; 109 | goastIndex = index; 110 | }else{ 111 | _goastView.image = nil; 112 | } 113 | 114 | if ([_mDelegate respondsToSelector:@selector(scrollViewDidScroll:)]) { 115 | [_mDelegate scrollViewDidScroll:scrollView]; 116 | } 117 | } 118 | 119 | - (UIImage*)imageFromView:(UIView*)view{ 120 | UIImage* image; 121 | UIGraphicsBeginImageContextWithOptions(view.frame.size, true, 2.0f); 122 | CGContextRef context = UIGraphicsGetCurrentContext(); 123 | [view.layer renderInContext:context]; 124 | image = UIGraphicsGetImageFromCurrentImageContext(); 125 | UIGraphicsEndImageContext(); 126 | return image; 127 | } 128 | 129 | @end -------------------------------------------------------------------------------- /Stack/Supporting Files/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | com.fivemeo.$(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 | -------------------------------------------------------------------------------- /Stack/Supporting Files/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // Stack 4 | // 5 | // Created by Tomoya_Hirano on 5/7/15. 6 | // Copyright (c) 2015 Tomoya_Hirano. 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 | -------------------------------------------------------------------------------- /Stack/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // Stack 4 | // 5 | // Created by Tomoya_Hirano on 5/7/15. 6 | // Copyright (c) 2015 Tomoya_Hirano. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "StackTableView.h" 11 | 12 | 13 | @interface ViewController : UIViewController 14 | @property (strong, nonatomic) IBOutlet StackTableView *tableView; 15 | @end 16 | 17 | -------------------------------------------------------------------------------- /Stack/ViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.m 3 | // Stack 4 | // 5 | // Created by Tomoya_Hirano on 5/7/15. 6 | // Copyright (c) 2015 Tomoya_Hirano. All rights reserved. 7 | // 8 | 9 | #import "ViewController.h" 10 | 11 | @interface ViewController (){ 12 | NSMutableArray*images; 13 | } 14 | 15 | @end 16 | 17 | @implementation ViewController 18 | 19 | - (void)viewDidLoad { 20 | [super viewDidLoad]; 21 | self.view.backgroundColor = [UIColor redColor]; 22 | 23 | self.tableView.delegate = self; 24 | self.tableView.dataSource = self; 25 | 26 | images = [NSMutableArray new]; 27 | for (int i=0; i<7; i++) { 28 | NSString*file = [NSString stringWithFormat:@"%d.jpg",i]; 29 | [images addObject:[UIImage imageNamed:file]]; 30 | } 31 | } 32 | 33 | - (void)didReceiveMemoryWarning { 34 | [super didReceiveMemoryWarning]; 35 | } 36 | 37 | #pragma mark - UITableViewDelegate and DataSource 38 | 39 | - (UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ 40 | UITableViewCell*cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"cell"]; 41 | 42 | UIImageView*iv = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, 200)]; 43 | iv.backgroundColor = [UIColor redColor]; 44 | iv.image = images[indexPath.row%7]; 45 | [cell.contentView addSubview:iv]; 46 | 47 | UILabel*label = [[UILabel alloc] initWithFrame:CGRectMake(self.view.bounds.size.width/2, 0, self.view.bounds.size.width, 44)]; 48 | NSString*text = [NSString stringWithFormat:@"index:%ld",(long)indexPath.row]; 49 | [label setText:text]; 50 | [label setTextColor: [UIColor whiteColor]]; 51 | label.font =[UIFont fontWithName:@"AvenirNextCondensed-Bold" size:25]; 52 | [cell.contentView addSubview: label]; 53 | 54 | return cell; 55 | } 56 | 57 | 58 | - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ 59 | return 100; 60 | } 61 | 62 | - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{ 63 | return 200; 64 | } 65 | 66 | - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath: (NSIndexPath *)indexPath { 67 | [tableView deselectRowAtIndexPath:indexPath animated:true]; 68 | NSLog(@"touch"); 69 | } 70 | 71 | @end 72 | -------------------------------------------------------------------------------- /StackTests/StackTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // StackTests.m 3 | // StackTests 4 | // 5 | // Created by Tomoya_Hirano on 5/7/15. 6 | // Copyright (c) 2015 Tomoya_Hirano. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | @interface StackTests : XCTestCase 13 | 14 | @end 15 | 16 | @implementation StackTests 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 | -------------------------------------------------------------------------------- /StackTests/Supporting Files/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | com.fivemeo.$(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 | -------------------------------------------------------------------------------- /sample.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noppefoxwolf/StackTableView/1fa201388eec13e2f37011438fc605971b0f4719/sample.gif --------------------------------------------------------------------------------