yptools 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (72) hide show
  1. checksums.yaml +7 -0
  2. data/bin/yptools +4 -0
  3. data/lib/yptools/help/yp_help.rb +16 -0
  4. data/lib/yptools/install/mvvm/install-template.sh +15 -0
  5. data/lib/yptools/install/mvvm/kMVVM.xctemplate/NSObjectObjective-C/___FILEBASENAME___.h +11 -0
  6. data/lib/yptools/install/mvvm/kMVVM.xctemplate/NSObjectObjective-C/___FILEBASENAME___.m +7 -0
  7. data/lib/yptools/install/mvvm/kMVVM.xctemplate/NSObjectSwift/___FILEBASENAME___.swift +7 -0
  8. data/lib/yptools/install/mvvm/kMVVM.xctemplate/TemplateIcon.png +0 -0
  9. data/lib/yptools/install/mvvm/kMVVM.xctemplate/TemplateIcon@2x.png +0 -0
  10. data/lib/yptools/install/mvvm/kMVVM.xctemplate/TemplateInfo.plist +224 -0
  11. data/lib/yptools/install/mvvm/kMVVM.xctemplate/UICollectionReusableViewObjective-C/___FILEBASENAME___.h +11 -0
  12. data/lib/yptools/install/mvvm/kMVVM.xctemplate/UICollectionReusableViewObjective-C/___FILEBASENAME___.m +7 -0
  13. data/lib/yptools/install/mvvm/kMVVM.xctemplate/UICollectionReusableViewSwift/___FILEBASENAME___.swift +7 -0
  14. data/lib/yptools/install/mvvm/kMVVM.xctemplate/UICollectionReusableViewXIBObjective-C/___FILEBASENAME___.h +11 -0
  15. data/lib/yptools/install/mvvm/kMVVM.xctemplate/UICollectionReusableViewXIBObjective-C/___FILEBASENAME___.m +12 -0
  16. data/lib/yptools/install/mvvm/kMVVM.xctemplate/UICollectionReusableViewXIBObjective-C/___FILEBASENAME___.xib +17 -0
  17. data/lib/yptools/install/mvvm/kMVVM.xctemplate/UICollectionReusableViewXIBSwift/___FILEBASENAME___.swift +12 -0
  18. data/lib/yptools/install/mvvm/kMVVM.xctemplate/UICollectionReusableViewXIBSwift/___FILEBASENAME___.xib +17 -0
  19. data/lib/yptools/install/mvvm/kMVVM.xctemplate/UICollectionViewCellObjective-C/___FILEBASENAME___.h +11 -0
  20. data/lib/yptools/install/mvvm/kMVVM.xctemplate/UICollectionViewCellObjective-C/___FILEBASENAME___.m +7 -0
  21. data/lib/yptools/install/mvvm/kMVVM.xctemplate/UICollectionViewCellSwift/___FILEBASENAME___.swift +7 -0
  22. data/lib/yptools/install/mvvm/kMVVM.xctemplate/UICollectionViewCellXIBObjective-C/___FILEBASENAME___.h +11 -0
  23. data/lib/yptools/install/mvvm/kMVVM.xctemplate/UICollectionViewCellXIBObjective-C/___FILEBASENAME___.m +12 -0
  24. data/lib/yptools/install/mvvm/kMVVM.xctemplate/UICollectionViewCellXIBObjective-C/___FILEBASENAME___.xib +21 -0
  25. data/lib/yptools/install/mvvm/kMVVM.xctemplate/UICollectionViewCellXIBSwift/___FILEBASENAME___.swift +12 -0
  26. data/lib/yptools/install/mvvm/kMVVM.xctemplate/UICollectionViewCellXIBSwift/___FILEBASENAME___.xib +21 -0
  27. data/lib/yptools/install/mvvm/kMVVM.xctemplate/UICollectionViewControllerObjective-C/___FILEBASENAME___.h +11 -0
  28. data/lib/yptools/install/mvvm/kMVVM.xctemplate/UICollectionViewControllerObjective-C/___FILEBASENAME___.m +87 -0
  29. data/lib/yptools/install/mvvm/kMVVM.xctemplate/UICollectionViewControllerSwift/___FILEBASENAME___.swift +83 -0
  30. data/lib/yptools/install/mvvm/kMVVM.xctemplate/UICollectionViewControllerXIBObjective-C/___FILEBASENAME___.h +11 -0
  31. data/lib/yptools/install/mvvm/kMVVM.xctemplate/UICollectionViewControllerXIBObjective-C/___FILEBASENAME___.m +87 -0
  32. data/lib/yptools/install/mvvm/kMVVM.xctemplate/UICollectionViewControllerXIBObjective-C/___FILEBASENAME___.xib +31 -0
  33. data/lib/yptools/install/mvvm/kMVVM.xctemplate/UICollectionViewControllerXIBSwift/___FILEBASENAME___.swift +83 -0
  34. data/lib/yptools/install/mvvm/kMVVM.xctemplate/UICollectionViewControllerXIBSwift/___FILEBASENAME___.xib +31 -0
  35. data/lib/yptools/install/mvvm/kMVVM.xctemplate/UITableViewCellObjective-C/___FILEBASENAME___.h +11 -0
  36. data/lib/yptools/install/mvvm/kMVVM.xctemplate/UITableViewCellObjective-C/___FILEBASENAME___.m +26 -0
  37. data/lib/yptools/install/mvvm/kMVVM.xctemplate/UITableViewCellSwift/___FILEBASENAME___.swift +18 -0
  38. data/lib/yptools/install/mvvm/kMVVM.xctemplate/UITableViewCellXIBObjective-C/___FILEBASENAME___.h +11 -0
  39. data/lib/yptools/install/mvvm/kMVVM.xctemplate/UITableViewCellXIBObjective-C/___FILEBASENAME___.m +18 -0
  40. data/lib/yptools/install/mvvm/kMVVM.xctemplate/UITableViewCellXIBObjective-C/___FILEBASENAME___.xib +21 -0
  41. data/lib/yptools/install/mvvm/kMVVM.xctemplate/UITableViewCellXIBSwift/___FILEBASENAME___.swift +18 -0
  42. data/lib/yptools/install/mvvm/kMVVM.xctemplate/UITableViewCellXIBSwift/___FILEBASENAME___.xib +21 -0
  43. data/lib/yptools/install/mvvm/kMVVM.xctemplate/UITableViewControllerObjective-C/___FILEBASENAME___.h +11 -0
  44. data/lib/yptools/install/mvvm/kMVVM.xctemplate/UITableViewControllerObjective-C/___FILEBASENAME___.m +87 -0
  45. data/lib/yptools/install/mvvm/kMVVM.xctemplate/UITableViewControllerSwift/___FILEBASENAME___.swift +84 -0
  46. data/lib/yptools/install/mvvm/kMVVM.xctemplate/UITableViewControllerXIBObjective-C/___FILEBASENAME___.h +11 -0
  47. data/lib/yptools/install/mvvm/kMVVM.xctemplate/UITableViewControllerXIBObjective-C/___FILEBASENAME___.m +103 -0
  48. data/lib/yptools/install/mvvm/kMVVM.xctemplate/UITableViewControllerXIBObjective-C/___FILEBASENAME___.xib +26 -0
  49. data/lib/yptools/install/mvvm/kMVVM.xctemplate/UITableViewControllerXIBSwift/___FILEBASENAME___.swift +84 -0
  50. data/lib/yptools/install/mvvm/kMVVM.xctemplate/UITableViewControllerXIBSwift/___FILEBASENAME___.xib +26 -0
  51. data/lib/yptools/install/mvvm/kMVVM.xctemplate/UIViewControllerObjective-C/___FILEBASENAME___.h +11 -0
  52. data/lib/yptools/install/mvvm/kMVVM.xctemplate/UIViewControllerObjective-C/___FILEBASENAME___.m +94 -0
  53. data/lib/yptools/install/mvvm/kMVVM.xctemplate/UIViewControllerObjective-C/___VARIABLE_Proxy___.h +15 -0
  54. data/lib/yptools/install/mvvm/kMVVM.xctemplate/UIViewControllerObjective-C/___VARIABLE_Proxy___.m +39 -0
  55. data/lib/yptools/install/mvvm/kMVVM.xctemplate/UIViewControllerObjective-C/___VARIABLE_TableViewCell___.h +11 -0
  56. data/lib/yptools/install/mvvm/kMVVM.xctemplate/UIViewControllerObjective-C/___VARIABLE_TableViewCell___.m +30 -0
  57. data/lib/yptools/install/mvvm/kMVVM.xctemplate/UIViewControllerObjective-C/___VARIABLE_ViewModel___.h +24 -0
  58. data/lib/yptools/install/mvvm/kMVVM.xctemplate/UIViewControllerObjective-C/___VARIABLE_ViewModel___.m +51 -0
  59. data/lib/yptools/install/mvvm/kMVVM.xctemplate/UIViewControllerSwift/___FILEBASENAME___.swift +24 -0
  60. data/lib/yptools/install/mvvm/kMVVM.xctemplate/UIViewControllerXIBObjective-C/___FILEBASENAME___.h +9 -0
  61. data/lib/yptools/install/mvvm/kMVVM.xctemplate/UIViewControllerXIBObjective-C/___FILEBASENAME___.m +61 -0
  62. data/lib/yptools/install/mvvm/kMVVM.xctemplate/UIViewControllerXIBObjective-C/___FILEBASENAME___.xib +43 -0
  63. data/lib/yptools/install/mvvm/kMVVM.xctemplate/UIViewControllerXIBSwift/___FILEBASENAME___.swift +24 -0
  64. data/lib/yptools/install/mvvm/kMVVM.xctemplate/UIViewControllerXIBSwift/___FILEBASENAME___.xib +22 -0
  65. data/lib/yptools/install/mvvm/kMVVM.xctemplate/UIViewObjective-C/___FILEBASENAME___.h +11 -0
  66. data/lib/yptools/install/mvvm/kMVVM.xctemplate/UIViewObjective-C/___FILEBASENAME___.m +26 -0
  67. data/lib/yptools/install/mvvm/kMVVM.xctemplate/UIViewSwift/___FILEBASENAME___.swift +15 -0
  68. data/lib/yptools/install/yp_install.rb +40 -0
  69. data/lib/yptools/log/yp_log.rb +11 -0
  70. data/lib/yptools/mgc/yp_makegarbagecode.rb +278 -0
  71. data/lib/yptools.rb +68 -0
  72. metadata +156 -0
@@ -0,0 +1,84 @@
1
+ //___FILEHEADER___
2
+
3
+ import UIKit
4
+
5
+ class ___FILEBASENAMEASIDENTIFIER___: ___VARIABLE_cocoaTouchSubclass___ {
6
+
7
+ override func viewDidLoad() {
8
+ super.viewDidLoad()
9
+
10
+ // Uncomment the following line to preserve selection between presentations
11
+ // self.clearsSelectionOnViewWillAppear = false
12
+
13
+ // Uncomment the following line to display an Edit button in the navigation bar for this view controller.
14
+ // self.navigationItem.rightBarButtonItem = self.editButtonItem
15
+ }
16
+
17
+ // MARK: - Table view data source
18
+
19
+ override func numberOfSections(in tableView: UITableView) -> Int {
20
+ // #warning Incomplete implementation, return the number of sections
21
+ return 0
22
+ }
23
+
24
+ override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
25
+ // #warning Incomplete implementation, return the number of rows
26
+ return 0
27
+ }
28
+
29
+ /*
30
+ override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
31
+ let cell = tableView.dequeueReusableCell(withIdentifier: "reuseIdentifier", for: indexPath)
32
+
33
+ // Configure the cell...
34
+
35
+ return cell
36
+ }
37
+ */
38
+
39
+ /*
40
+ // Override to support conditional editing of the table view.
41
+ override func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool {
42
+ // Return false if you do not want the specified item to be editable.
43
+ return true
44
+ }
45
+ */
46
+
47
+ /*
48
+ // Override to support editing the table view.
49
+ override func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) {
50
+ if editingStyle == .delete {
51
+ // Delete the row from the data source
52
+ tableView.deleteRows(at: [indexPath], with: .fade)
53
+ } else if editingStyle == .insert {
54
+ // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view
55
+ }
56
+ }
57
+ */
58
+
59
+ /*
60
+ // Override to support rearranging the table view.
61
+ override func tableView(_ tableView: UITableView, moveRowAt fromIndexPath: IndexPath, to: IndexPath) {
62
+
63
+ }
64
+ */
65
+
66
+ /*
67
+ // Override to support conditional rearranging of the table view.
68
+ override func tableView(_ tableView: UITableView, canMoveRowAt indexPath: IndexPath) -> Bool {
69
+ // Return false if you do not want the item to be re-orderable.
70
+ return true
71
+ }
72
+ */
73
+
74
+ /*
75
+ // MARK: - Navigation
76
+
77
+ // In a storyboard-based application, you will often want to do a little preparation before navigation
78
+ override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
79
+ // Get the new view controller using segue.destination.
80
+ // Pass the selected object to the new view controller.
81
+ }
82
+ */
83
+
84
+ }
@@ -0,0 +1,11 @@
1
+ //___FILEHEADER___
2
+
3
+ ___IMPORTHEADER_cocoaTouchSubclass___
4
+
5
+ NS_ASSUME_NONNULL_BEGIN
6
+
7
+ @interface ___FILEBASENAMEASIDENTIFIER___ : ___VARIABLE_cocoaTouchSubclass___
8
+
9
+ @end
10
+
11
+ NS_ASSUME_NONNULL_END
@@ -0,0 +1,103 @@
1
+ //___FILEHEADER___
2
+
3
+ #import "___FILEBASENAME___.h"
4
+
5
+ @interface ___FILEBASENAMEASIDENTIFIER___ ()
6
+
7
+ @end
8
+
9
+ @implementation ___FILEBASENAMEASIDENTIFIER___
10
+
11
+ - (void)viewDidLoad {
12
+ [super viewDidLoad];
13
+
14
+ // Uncomment the following line to preserve selection between presentations.
15
+ // self.clearsSelectionOnViewWillAppear = NO;
16
+
17
+ // Uncomment the following line to display an Edit button in the navigation bar for this view controller.
18
+ // self.navigationItem.rightBarButtonItem = self.editButtonItem;
19
+ }
20
+
21
+ #pragma mark - Table view data source
22
+
23
+ - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
24
+ #warning Incomplete implementation, return the number of sections
25
+ return 0;
26
+ }
27
+
28
+ - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
29
+ #warning Incomplete implementation, return the number of rows
30
+ return 0;
31
+ }
32
+
33
+ /*
34
+ - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
35
+ UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:<#@"reuseIdentifier"#> forIndexPath:indexPath];
36
+
37
+ // Configure the cell...
38
+
39
+ return cell;
40
+ }
41
+ */
42
+
43
+ /*
44
+ // Override to support conditional editing of the table view.
45
+ - (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
46
+ // Return NO if you do not want the specified item to be editable.
47
+ return YES;
48
+ }
49
+ */
50
+
51
+ /*
52
+ // Override to support editing the table view.
53
+ - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
54
+ if (editingStyle == UITableViewCellEditingStyleDelete) {
55
+ // Delete the row from the data source
56
+ [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
57
+ } else if (editingStyle == UITableViewCellEditingStyleInsert) {
58
+ // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view
59
+ }
60
+ }
61
+ */
62
+
63
+ /*
64
+ // Override to support rearranging the table view.
65
+ - (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath {
66
+ }
67
+ */
68
+
69
+ /*
70
+ // Override to support conditional rearranging of the table view.
71
+ - (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath {
72
+ // Return NO if you do not want the item to be re-orderable.
73
+ return YES;
74
+ }
75
+ */
76
+
77
+ /*
78
+ #pragma mark - Table view delegate
79
+
80
+ // In a xib-based application, navigation from a table can be handled in -tableView:didSelectRowAtIndexPath:
81
+ - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
82
+ // Navigation logic may go here, for example:
83
+ // Create the next view controller.
84
+ <#DetailViewController#> *detailViewController = [[<#DetailViewController#> alloc] initWithNibName:<#@"Nib name"#> bundle:nil];
85
+
86
+ // Pass the selected object to the new view controller.
87
+
88
+ // Push the view controller.
89
+ [self.navigationController pushViewController:detailViewController animated:YES];
90
+ }
91
+ */
92
+
93
+ /*
94
+ #pragma mark - Navigation
95
+
96
+ // In a storyboard-based application, you will often want to do a little preparation before navigation
97
+ - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
98
+ // Get the new view controller using [segue destinationViewController].
99
+ // Pass the selected object to the new view controller.
100
+ }
101
+ */
102
+
103
+ @end
@@ -0,0 +1,26 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="13142" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
3
+ <dependencies>
4
+ <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12042"/>
5
+ <capability name="Safe area layout guides" minToolsVersion="9.0"/>
6
+ <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
7
+ </dependencies>
8
+ <objects>
9
+ <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="___FILEBASENAMEASIDENTIFIER___">
10
+ <connections>
11
+ <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
12
+ </connections>
13
+ </placeholder>
14
+ <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
15
+ <tableView opaque="NO" clipsSubviews="YES" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" bouncesZoom="NO" style="plain" separatorStyle="default" rowHeight="44" sectionHeaderHeight="22" sectionFooterHeight="22" id="i5M-Pr-FkT">
16
+ <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
17
+ <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
18
+ <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
19
+ <viewLayoutGuide key="safeArea" id="NQg-xp-Ubj"/>
20
+ <connections>
21
+ <outlet property="dataSource" destination="-1" id="Tng-2m-Rnh"/>
22
+ <outlet property="delegate" destination="-1" id="9aC-8N-iBw"/>
23
+ </connections>
24
+ </tableView>
25
+ </objects>
26
+ </document>
@@ -0,0 +1,84 @@
1
+ //___FILEHEADER___
2
+
3
+ import UIKit
4
+
5
+ class ___FILEBASENAMEASIDENTIFIER___: ___VARIABLE_cocoaTouchSubclass___ {
6
+
7
+ override func viewDidLoad() {
8
+ super.viewDidLoad()
9
+
10
+ // Uncomment the following line to preserve selection between presentations
11
+ // self.clearsSelectionOnViewWillAppear = false
12
+
13
+ // Uncomment the following line to display an Edit button in the navigation bar for this view controller.
14
+ // self.navigationItem.rightBarButtonItem = self.editButtonItem
15
+ }
16
+
17
+ // MARK: - Table view data source
18
+
19
+ override func numberOfSections(in tableView: UITableView) -> Int {
20
+ // #warning Incomplete implementation, return the number of sections
21
+ return 0
22
+ }
23
+
24
+ override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
25
+ // #warning Incomplete implementation, return the number of rows
26
+ return 0
27
+ }
28
+
29
+ /*
30
+ override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
31
+ let cell = tableView.dequeueReusableCell(withIdentifier: "reuseIdentifier", for: indexPath)
32
+
33
+ // Configure the cell...
34
+
35
+ return cell
36
+ }
37
+ */
38
+
39
+ /*
40
+ // Override to support conditional editing of the table view.
41
+ override func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool {
42
+ // Return false if you do not want the specified item to be editable.
43
+ return true
44
+ }
45
+ */
46
+
47
+ /*
48
+ // Override to support editing the table view.
49
+ override func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) {
50
+ if editingStyle == .delete {
51
+ // Delete the row from the data source
52
+ tableView.deleteRows(at: [indexPath], with: .fade)
53
+ } else if editingStyle == .insert {
54
+ // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view
55
+ }
56
+ }
57
+ */
58
+
59
+ /*
60
+ // Override to support rearranging the table view.
61
+ override func tableView(_ tableView: UITableView, moveRowAt fromIndexPath: IndexPath, to: IndexPath) {
62
+
63
+ }
64
+ */
65
+
66
+ /*
67
+ // Override to support conditional rearranging of the table view.
68
+ override func tableView(_ tableView: UITableView, canMoveRowAt indexPath: IndexPath) -> Bool {
69
+ // Return false if you do not want the item to be re-orderable.
70
+ return true
71
+ }
72
+ */
73
+
74
+ /*
75
+ // MARK: - Navigation
76
+
77
+ // In a storyboard-based application, you will often want to do a little preparation before navigation
78
+ override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
79
+ // Get the new view controller using segue.destination.
80
+ // Pass the selected object to the new view controller.
81
+ }
82
+ */
83
+
84
+ }
@@ -0,0 +1,26 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="13142" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
3
+ <dependencies>
4
+ <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12042"/>
5
+ <capability name="Safe area layout guides" minToolsVersion="9.0"/>
6
+ <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
7
+ </dependencies>
8
+ <objects>
9
+ <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="___FILEBASENAMEASIDENTIFIER___" customModuleProvider="target">
10
+ <connections>
11
+ <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
12
+ </connections>
13
+ </placeholder>
14
+ <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
15
+ <tableView opaque="NO" clipsSubviews="YES" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" bouncesZoom="NO" style="plain" separatorStyle="default" rowHeight="44" sectionHeaderHeight="22" sectionFooterHeight="22" id="i5M-Pr-FkT">
16
+ <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
17
+ <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
18
+ <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
19
+ <viewLayoutGuide key="safeArea" id="vLr-E1-eTs"/>
20
+ <connections>
21
+ <outlet property="dataSource" destination="-1" id="Tng-2m-Rnh"/>
22
+ <outlet property="delegate" destination="-1" id="9aC-8N-iBw"/>
23
+ </connections>
24
+ </tableView>
25
+ </objects>
26
+ </document>
@@ -0,0 +1,11 @@
1
+ //___FILEHEADER___
2
+
3
+ ___IMPORTHEADER_cocoaTouchSubclass___
4
+
5
+ NS_ASSUME_NONNULL_BEGIN
6
+
7
+ @interface ___FILEBASENAMEASIDENTIFIER___ : ___VARIABLE_cocoaTouchSubclass___
8
+
9
+ @end
10
+
11
+ NS_ASSUME_NONNULL_END
@@ -0,0 +1,94 @@
1
+ //___FILEHEADER___
2
+
3
+ #import "___FILEBASENAME___.h"
4
+ #import "___VARIABLE_ViewModel___.h"
5
+ #import "___VARIABLE_Proxy___.h"
6
+ #import "___VARIABLE_TableViewCell___.h"
7
+ #import "Masonry.h"
8
+
9
+ @interface ___FILEBASENAMEASIDENTIFIER___ () <___VARIABLE_ViewModel___Delegate>
10
+
11
+ @property (nonatomic, strong) UITableView *tableView;
12
+ @property (nonatomic, strong) ___VARIABLE_ViewModel___ *viewModel;
13
+ @property (nonatomic, strong) ___VARIABLE_Proxy___ *proxy;
14
+
15
+ @end
16
+
17
+ @implementation ___FILEBASENAMEASIDENTIFIER___
18
+
19
+ - (void)viewDidLoad {
20
+ [super viewDidLoad];
21
+ // Do any additional setup after loading the view.
22
+
23
+ [self setupSubviews];
24
+ [self startLoadData];
25
+ }
26
+
27
+ - (void)startLoadData {
28
+ [self.viewModel startLoadData];
29
+ }
30
+
31
+ - (void)setupSubviews {
32
+ [self.view addSubview:self.tableView];
33
+ [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) {
34
+ make.left.right.bottom.equalTo(self.view);
35
+ make.top.equalTo(self.view);
36
+ }];
37
+ }
38
+
39
+ #pragma mark - ___VARIABLE_ViewModel___Delegate
40
+
41
+ - (void)didEndLoadData:(BOOL)hasMore {
42
+ [self.tableView.mj_header endRefreshing];
43
+ [self.tableView.mj_footer endRefreshing];
44
+ if (hasMore) {
45
+ [self.tableView.mj_footer resetNoMoreData];
46
+ } else {
47
+ [self.tableView.mj_footer endRefreshingWithNoMoreData];
48
+ }
49
+ [self.tableView reloadData];
50
+ }
51
+
52
+ #pragma mark - getters | setters
53
+
54
+ - (UITableView *)tableView {
55
+ if (!_tableView) {
56
+ UITableView *tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
57
+ tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
58
+ tableView.showsHorizontalScrollIndicator = NO;
59
+ tableView.showsVerticalScrollIndicator = NO;
60
+ tableView.delegate = self.proxy;
61
+ tableView.dataSource = self.proxy;
62
+ NSArray *classs = @[
63
+ [UITableViewCell class],
64
+ [___VARIABLE_TableViewCell___ class],
65
+ ];
66
+ [classs enumerateObjectsUsingBlock:^(Class _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
67
+ [tableView registerClass:obj forCellReuseIdentifier:NSStringFromClass(obj)];
68
+ }];
69
+ NSArray *headersClasss = @[
70
+ ];
71
+ [headersClasss enumerateObjectsUsingBlock:^(Class _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
72
+ [tableView registerClass:obj forHeaderFooterViewReuseIdentifier:NSStringFromClass(obj)];
73
+ }];
74
+ _tableView = tableView;
75
+ }
76
+ return _tableView;
77
+ }
78
+
79
+ - (___VARIABLE_Proxy___ *)proxy {
80
+ if (!_proxy) {
81
+ _proxy = [[___VARIABLE_Proxy___ alloc] initWithViewModel:self.viewModel];
82
+ }
83
+ return _proxy;
84
+ }
85
+
86
+ - (___VARIABLE_ViewModel___ *)viewModel {
87
+ if (!_viewModel) {
88
+ _viewModel = [[___VARIABLE_ViewModel___ alloc] init];
89
+ _viewModel.delegate = self;
90
+ }
91
+ return _viewModel;
92
+ }
93
+
94
+ @end
@@ -0,0 +1,15 @@
1
+ //___FILEHEADER___
2
+
3
+ ___IMPORTHEADER_cocoaTouchSubclass___
4
+
5
+ NS_ASSUME_NONNULL_BEGIN
6
+
7
+ @class ___VARIABLE_ViewModel___;
8
+
9
+ @interface ___FILEBASENAMEASIDENTIFIER___ : NSObject <UITableViewDelegate,UITableViewDataSource>
10
+
11
+ - (instancetype)initWithViewModel:(___VARIABLE_ViewModel___ *)viewModel;
12
+
13
+ @end
14
+
15
+ NS_ASSUME_NONNULL_END
@@ -0,0 +1,39 @@
1
+ //___FILEHEADER___
2
+
3
+ #import "___FILEBASENAME___.h"
4
+ #import "___VARIABLE_ViewModel___.h"
5
+ #import "___VARIABLE_TableViewCell___.h"
6
+
7
+ @interface ___FILEBASENAMEASIDENTIFIER___ ()
8
+
9
+ @property (nonatomic, weak) ___VARIABLE_ViewModel___ *viewModel;
10
+
11
+ @end
12
+
13
+ @implementation ___FILEBASENAMEASIDENTIFIER___
14
+
15
+ - (instancetype)initWithViewModel:(___VARIABLE_ViewModel___ *)viewModel {
16
+ if (self = [self init]) {
17
+ self.viewModel = viewModel;
18
+ }
19
+ return self;
20
+ }
21
+
22
+ #pragma mark - UITableViewDelegate,UITableViewDataSource
23
+
24
+ - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
25
+ ___VARIABLE_TableViewCell___ *cell = [tableView dequeueReusableCellWithIdentifier:@"___VARIABLE_TableViewCell___"];
26
+ cell.textLabel.text = self.viewModel.dataList[indexPath.row];
27
+ return cell;
28
+ }
29
+
30
+ - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
31
+ return self.viewModel.dataList.count;
32
+ }
33
+
34
+ - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
35
+ CGFloat height = 44.f;
36
+ return height;
37
+ }
38
+
39
+ @end
@@ -0,0 +1,11 @@
1
+ //___FILEHEADER___
2
+
3
+ ___IMPORTHEADER_cocoaTouchSubclass___
4
+
5
+ NS_ASSUME_NONNULL_BEGIN
6
+
7
+ @interface ___FILEBASENAMEASIDENTIFIER___ : UITableViewCell
8
+
9
+ @end
10
+
11
+ NS_ASSUME_NONNULL_END
@@ -0,0 +1,30 @@
1
+ //___FILEHEADER___
2
+
3
+ #import "___FILEBASENAME___.h"
4
+
5
+ @interface ___FILEBASENAMEASIDENTIFIER___ ()
6
+
7
+ @end
8
+
9
+ @implementation ___FILEBASENAMEASIDENTIFIER___
10
+
11
+ - (instancetype)initWithStyle:(UITableViewCellStyle)style
12
+ reuseIdentifier:(NSString *)reuseIdentifier {
13
+ self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
14
+ if (self) {
15
+ self.selectionStyle = UITableViewCellSelectionStyleDefault;
16
+ self.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
17
+ [self setupSubViews];
18
+ }
19
+ return self;
20
+ }
21
+
22
+ - (void)setupSubViews{
23
+ //to do
24
+ }
25
+
26
+ - (void)layoutSubviews{
27
+ [super layoutSubviews];
28
+ }
29
+
30
+ @end
@@ -0,0 +1,24 @@
1
+ //___FILEHEADER___
2
+
3
+ ___IMPORTHEADER_cocoaTouchSubclass___
4
+
5
+ NS_ASSUME_NONNULL_BEGIN
6
+
7
+ @protocol ___FILEBASENAMEASIDENTIFIER___Delegate <NSObject>
8
+
9
+ - (void)didEndLoadData:(BOOL)hasMore;
10
+
11
+ @end
12
+
13
+ @interface ___FILEBASENAMEASIDENTIFIER___ : NSObject
14
+
15
+ @property (nonatomic, weak) id <___FILEBASENAMEASIDENTIFIER___Delegate> delegate;
16
+ @property (nonatomic, readonly) NSMutableArray *dataList;
17
+
18
+ - (void)startLoadData;
19
+
20
+ - (void)loadMoreData;
21
+
22
+ @end
23
+
24
+ NS_ASSUME_NONNULL_END
@@ -0,0 +1,51 @@
1
+ //___FILEHEADER___
2
+
3
+ #import "___FILEBASENAME___.h"
4
+
5
+ @interface ___FILEBASENAMEASIDENTIFIER___ ()
6
+
7
+ @property (nonatomic, strong) NSMutableArray *dataList;
8
+
9
+ @end
10
+
11
+ @implementation ___FILEBASENAMEASIDENTIFIER___ {
12
+ NSInteger _pageSize;
13
+ NSInteger _pageIndex;
14
+ }
15
+
16
+ - (instancetype)init {
17
+ if (self = [super init]) {
18
+ _pageSize = 10;
19
+ _pageIndex = 1;
20
+ self.dataList = [[NSMutableArray alloc] init];
21
+ }
22
+ return self;
23
+ }
24
+
25
+ - (void)startLoadData {
26
+ _pageIndex = 1;
27
+ [self startLoadingData:_pageIndex];
28
+ }
29
+
30
+ - (void)loadMoreData {
31
+ _pageIndex ++;
32
+ [self startLoadingData:_pageIndex];
33
+ }
34
+
35
+ - (void)startLoadingData:(NSInteger)pageIndex {
36
+ dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
37
+ BOOL hasMore = YES;
38
+ if (_pageIndex > 3) {
39
+ hasMore = NO;
40
+ }
41
+ if (_pageIndex == 1) {
42
+ [self.dataList removeAllObjects];
43
+ }
44
+ [self.dataList addObjectsFromArray:[[UIFont familyNames] subarrayWithRange:NSMakeRange(self.dataList.count, _pageSize)]];
45
+ if ([self.delegate respondsToSelector:@selector(didEndLoadData:)]) {
46
+ [self.delegate didEndLoadData:hasMore];
47
+ }
48
+ });
49
+ }
50
+
51
+ @end
@@ -0,0 +1,24 @@
1
+ //___FILEHEADER___
2
+
3
+ import UIKit
4
+
5
+ class ___FILEBASENAMEASIDENTIFIER___: ___VARIABLE_cocoaTouchSubclass___ {
6
+
7
+ override func viewDidLoad() {
8
+ super.viewDidLoad()
9
+
10
+ // Do any additional setup after loading the view.
11
+ }
12
+
13
+
14
+ /*
15
+ // MARK: - Navigation
16
+
17
+ // In a storyboard-based application, you will often want to do a little preparation before navigation
18
+ override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
19
+ // Get the new view controller using segue.destination.
20
+ // Pass the selected object to the new view controller.
21
+ }
22
+ */
23
+
24
+ }
@@ -0,0 +1,9 @@
1
+ //___FILEHEADER___
2
+
3
+ ___IMPORTHEADER_cocoaTouchSubclass___
4
+
5
+
6
+ @interface ___FILEBASENAMEASIDENTIFIER___ : ___VARIABLE_cocoaTouchSubclass___
7
+
8
+ @end
9
+