Sfoglia il codice sorgente

测试打包版本

zzb 4 anni fa
parent
commit
7173612e29

+ 2 - 2
Example/Podfile.lock

@@ -73,8 +73,8 @@ SPEC CHECKSUMS:
   Masonry: 678fab65091a9290e40e2832a55e7ab731aad201
   Yoga: cff67a400f6b74dc38eb0bad4f156673d9aa980c
   ZZFoundation: 91e9ee45372135b8fc4d10a7dd76cc6c164d4d51
-  ZZUIKit: 6b13ffb6e135245689cd6854454e4c6058f6b129
+  ZZUIKit: 64a1e4572645e6f9dc00504b123ab74a52f350bd
 
-PODFILE CHECKSUM: 88b54d7bf9c2a43db0a8c7ef75c8fc4420c0e15d
+PODFILE CHECKSUM: b910f79bcb127de3200b23f171ceda48e9d8c8e8
 
 COCOAPODS: 1.10.1

+ 2 - 1
Example/Pods/Local Podspecs/ZZUIKit.podspec.json

@@ -33,7 +33,8 @@
     "ZZUIKit/Classes/ZZMaskView/*",
     "ZZUIKit/Classes/ZZDialog/*",
     "ZZUIKit/Classes/ZZTextImgView/*",
-    "ZZUIKit/Classes/ZZTextWidget/*"
+    "ZZUIKit/Classes/ZZTextWidget/*",
+    "ZZUIKit/Classes/ZZViewController/*"
   ],
   "resource_bundles": {
     "ZZUIKit": [

+ 2 - 2
Example/Pods/Manifest.lock

@@ -73,8 +73,8 @@ SPEC CHECKSUMS:
   Masonry: 678fab65091a9290e40e2832a55e7ab731aad201
   Yoga: cff67a400f6b74dc38eb0bad4f156673d9aa980c
   ZZFoundation: 91e9ee45372135b8fc4d10a7dd76cc6c164d4d51
-  ZZUIKit: 6b13ffb6e135245689cd6854454e4c6058f6b129
+  ZZUIKit: 64a1e4572645e6f9dc00504b123ab74a52f350bd
 
-PODFILE CHECKSUM: 88b54d7bf9c2a43db0a8c7ef75c8fc4420c0e15d
+PODFILE CHECKSUM: b910f79bcb127de3200b23f171ceda48e9d8c8e8
 
 COCOAPODS: 1.10.1

File diff suppressed because it is too large
+ 1292 - 1247
Example/Pods/Pods.xcodeproj/project.pbxproj


+ 3 - 0
Example/Pods/Target Support Files/ZZUIKit/ZZUIKit-umbrella.h

@@ -24,6 +24,7 @@
 #import "UILabel+ZZPadding.h"
 #import "UILabel+ZZStroke.h"
 #import "UITabBarController+ZZEx.h"
+#import "UIView+ZZCornerRadius.h"
 #import "UIView+ZZEx.h"
 #import "UIView+ZZFrame.h"
 #import "UIView+ZZGesture.h"
@@ -34,6 +35,7 @@
 #import "ZZFrame.h"
 #import "ZZUIKitTools.h"
 #import "ZZViewHierarchy.h"
+#import "ZZViewProtocol.h"
 #import "ZZInfoItem.h"
 #import "ZZListTitle.h"
 #import "FlexHttpVC.h"
@@ -49,6 +51,7 @@
 #import "ZZDialogViewController.h"
 #import "ZZTextImgView.h"
 #import "ZZTextWidget.h"
+#import "ZZViewController.h"
 
 FOUNDATION_EXPORT double ZZUIKitVersionNumber;
 FOUNDATION_EXPORT const unsigned char ZZUIKitVersionString[];

+ 2 - 0
ZZUIKit/Classes/Ex/Control/UIControl+ZZEx.h

@@ -19,6 +19,8 @@ NS_ASSUME_NONNULL_BEGIN
 @property (nonatomic, copy) ZZControlEventsBlock zz_eventBlock;
 // 添加触发事件
 - (UIControl *(^)(ZZControlEventsBlock block,UIControlEvents events))zz_eventFire;
+
+-(void)zz_fire;
 @end
 
 NS_ASSUME_NONNULL_END

+ 11 - 8
ZZUIKit/Classes/Ex/Control/UIControl+ZZEx.m

@@ -17,6 +17,11 @@
 
 /// 预期的selector,基于zz_expectTarget的第一个selector
 - (SEL)zz_expectSelector{
+    NSArray * selectorStrs = [self actionsForTarget:[self zz_expectTarget] forControlEvent:[self zz_expectEvent]];
+    return NSSelectorFromString(selectorStrs.firstObject);
+};
+
+-(UIControlEvents )zz_expectEvent{
     UIControlEvents event;
     if ([self isMemberOfClass:[UIButton class]]) {
         event = UIControlEventTouchUpInside;
@@ -29,13 +34,11 @@
         event = UIControlEventValueChanged;
     }else if([self isMemberOfClass:[UITextField class]]){
         event = UIControlEventEditingChanged;
+    }else{
+        event = UIControlEventTouchUpInside;
     }
-    else{
-        return nil;
-    }
-    NSArray * selectorStrs = [self actionsForTarget:[self zz_expectTarget] forControlEvent:event];
-    return NSSelectorFromString(selectorStrs.firstObject);
-};
+    return event;
+}
 
 
 #pragma mark -- event
@@ -43,6 +46,7 @@ static void *ZZ_eventBlocKey = &ZZ_eventBlocKey;
 
 -(void)setZz_eventBlock:(ZZControlEventsBlock)zz_eventBlock{
     objc_setAssociatedObject(self, &ZZ_eventBlocKey, zz_eventBlock, OBJC_ASSOCIATION_COPY);
+    [self addTarget:self action:@selector(zz_fire) forControlEvents:[self zz_expectEvent]];
 }
 
 -(ZZControlEventsBlock)zz_eventBlock{
@@ -52,12 +56,11 @@ static void *ZZ_eventBlocKey = &ZZ_eventBlocKey;
 - (UIControl *(^)(ZZControlEventsBlock block,UIControlEvents events))zz_eventFire{
     return ^UIControl *(ZZControlEventsBlock block,UIControlEvents events){
         self.zz_eventBlock = block;
-        [self addTarget:self action:@selector(fire) forControlEvents:events];
         return self;
     };
 };
 
--(void)fire{
+-(void)zz_fire{
     if (self.zz_eventBlock) {
         self.zz_eventBlock(self);
     }

+ 23 - 0
ZZUIKit/Classes/Ex/ViewController/UIViewController+ZZEx.h

@@ -0,0 +1,23 @@
+//
+//  UIViewController+ZZEx.h
+//  ZZUIKit
+//
+//  Created by Max on 2021/2/23.
+//
+
+#import <UIKit/UIKit.h>
+
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface UIViewController (ZZEx)
+
+@property(nonatomic,copy) void(^zz_viewDidLoadBlock)(__kindof UIViewController *vc);
+@property(nonatomic,copy) void(^zz_viewWillAppearBlock)(__kindof UIViewController *vc);
+@property(nonatomic,copy) void(^zz_viewDidAppearBlock)(__kindof UIViewController *vc);
+@property(nonatomic,copy) void(^zz_viewWillLayoutSubviewsBlock)(__kindof UIViewController *vc);
+@property(nonatomic,copy) void(^zz_viewDidLayoutSubviewsBlock)(__kindof UIViewController *vc);
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 106 - 0
ZZUIKit/Classes/Ex/ViewController/UIViewController+ZZEx.m

@@ -0,0 +1,106 @@
+//
+//  UIViewController+ZZEx.m
+//  ZZUIKit
+//
+//  Created by Max on 2021/2/23.
+//
+
+#import "UIViewController+ZZEx.h"
+#import "objc/runtime.h"
+#import <ZZFoundation/ZZSwizzle.h>
+#import <ZZFoundation/ZZWeakify.h>
+@implementation UIViewController (ZZEx)
+
++(void)load{
+    ZZ_best_Swizzle(self, @selector(viewDidLoad), @selector(zz_viewDidLoad));
+    ZZ_best_Swizzle(self, @selector(viewWillAppear:), @selector(zz_viewWillAppear));
+    ZZ_best_Swizzle(self, @selector(viewDidAppear:), @selector(zz_viewDidAppear));
+    ZZ_best_Swizzle(self, @selector(viewWillLayoutSubviews), @selector(zz_viewWillLayoutSubviews));
+    ZZ_best_Swizzle(self, @selector(viewDidLayoutSubviews), @selector(zz_viewDidLayoutSubviews));
+}
+
+#pragma mark -- viewDidLoad
+-(void)zz_viewDidLoad{
+    [self zz_viewDidLoad];
+    if (self.zz_viewDidLoadBlock) {
+        @weakify(self);
+        self.zz_viewDidLoadBlock(weak_self);
+    }
+}
+
+-(void)setZz_viewDidLoadBlock:(void (^)(__kindof UIViewController * _Nonnull))zz_viewDidLoadBlock{
+    objc_setAssociatedObject(self, @selector(zz_viewDidLoadBlock), zz_viewDidLoadBlock, OBJC_ASSOCIATION_COPY);
+}
+
+-(void (^)(__kindof UIViewController * _Nonnull))zz_viewDidLoadBlock{
+    return objc_getAssociatedObject(self, @selector(zz_viewDidLoadBlock));
+}
+
+#pragma mark -- zz_viewWillAppearBlock
+-(void)zz_viewWillAppear{
+    [self zz_viewWillAppear];
+    if (self.zz_viewWillAppearBlock) {
+        @weakify(self);
+        self.zz_viewWillAppearBlock(weak_self);
+    }
+}
+
+-(void)setZz_viewWillAppearBlock:(void (^)(__kindof UIViewController * _Nonnull))zz_viewWillAppearBlock{
+    objc_setAssociatedObject(self, @selector(zz_viewWillAppearBlock), zz_viewWillAppearBlock, OBJC_ASSOCIATION_COPY);
+}
+
+-(void (^)(__kindof UIViewController * _Nonnull))zz_viewWillAppearBlock{
+    return objc_getAssociatedObject(self, @selector(zz_viewWillAppearBlock));
+}
+
+#pragma mark -- viewDidAppearBlock
+-(void)setZz_viewDidAppearBlock:(void (^)(__kindof UIViewController * _Nonnull))zz_viewDidAppearBlock{
+    objc_setAssociatedObject(self, @selector(zz_viewDidAppearBlock), zz_viewDidAppearBlock, OBJC_ASSOCIATION_COPY);
+}
+
+-(void (^)(__kindof UIViewController * _Nonnull))zz_viewDidAppearBlock{
+    return objc_getAssociatedObject(self, @selector(zz_viewDidAppearBlock));
+}
+
+-(void)zz_viewDidAppear{
+    [self zz_viewDidAppear];
+    if (self.zz_viewDidAppearBlock) {
+        @weakify(self);
+        self.zz_viewDidAppearBlock(weak_self);
+    }
+}
+
+#pragma mark -- zz_viewWillLayoutSubviewsBlock
+-(void)setZz_viewWillLayoutSubviewsBlock:(void (^)(__kindof UIViewController * _Nonnull))zz_viewWillLayoutSubviewsBlock{
+    objc_setAssociatedObject(self, @selector(zz_viewWillLayoutSubviews), zz_viewWillLayoutSubviewsBlock, OBJC_ASSOCIATION_COPY);
+}
+
+-(void (^)(__kindof UIViewController * _Nonnull))zz_viewWillLayoutSubviewsBlock{
+    return objc_getAssociatedObject(self, @selector(zz_viewWillLayoutSubviewsBlock));
+}
+
+-(void)zz_viewWillLayoutSubviews{
+    [self zz_viewWillLayoutSubviews];
+    if (self.zz_viewWillLayoutSubviewsBlock) {
+        @weakify(self);
+        self.zz_viewWillLayoutSubviewsBlock(weak_self);
+    }
+}
+
+#pragma mark -- zz_viewDidLayoutSubviewsBlock
+-(void)setZz_viewDidLayoutSubviewsBlock:(void (^)(__kindof UIViewController * _Nonnull))zz_viewDidLayoutSubviewsBlock{
+    objc_setAssociatedObject(self, @selector(zz_viewDidLayoutSubviewsBlock), zz_viewDidLayoutSubviewsBlock, OBJC_ASSOCIATION_COPY);
+}
+
+-(void (^)(__kindof UIViewController * _Nonnull))zz_viewDidLayoutSubviewsBlock{
+    return objc_getAssociatedObject(self, @selector(zz_viewDidLayoutSubviewsBlock));
+}
+
+-(void)zz_viewDidLayoutSubviews{
+    [self zz_viewDidLayoutSubviews];
+    if (self.zz_viewDidLayoutSubviewsBlock) {
+        @weakify(self);
+        self.zz_viewDidLayoutSubviewsBlock(weak_self);
+    }
+}
+@end

+ 1 - 0
ZZUIKit/Classes/Ex/ZZUIKitEx.h

@@ -27,6 +27,7 @@
 #import "UILabel+ZZPadding.h"
 #import "UILabel+ZZStroke.h"
 
+#import "UIViewController+ZZEx.h"
 #import <ZZFoundation/ZZFoundation.h>
 
 #endif /* ZZUIKitEx_h */

+ 13 - 10
ZZUIKit/Classes/ZZDialog/ZZDialogViewController.m

@@ -18,31 +18,34 @@
 
 -(instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil{
     if (self == [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
-        self.definesPresentationContext = true;
-        self.modalPresentationStyle = UIModalPresentationOverCurrentContext;
+        [self commonInit];
     }
     return self;
 }
 
 -(instancetype)initWithCoder:(NSCoder *)coder{
     if (self == [super initWithCoder:coder]) {
-        self.definesPresentationContext = true;
-        self.modalPresentationStyle = UIModalPresentationOverCurrentContext;
+        [self commonInit];
     }
     return self;
 }
 
+-(void)commonInit{
+    self.definesPresentationContext = true;
+    self.modalPresentationStyle = UIModalPresentationOverCurrentContext;
+    self.maskView = [[ZZMaskView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_W(), SCREEN_H())];
+    __weak typeof(self) weakSelf = self;
+    [self.view insertSubview:self.maskView atIndex:0];
+    self.maskView.zz_tapAction(^(UIView *v){
+      [weakSelf.dialog dismiss];
+    });
+}
+
 - (void)awakeFromNib{
     [super awakeFromNib];
 }
 
 -(void)viewDidLoad{
-   self.maskView = [[ZZMaskView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_W(), SCREEN_H())];
-   __weak typeof(self) weakSelf = self;
-   [self.view insertSubview:self.maskView atIndex:0];
-   self.maskView.zz_tapAction(^(UIView *v){
-       [weakSelf.dialog dismiss];
-   });
    [self.view addSubview:self.dialog];
 }
 

+ 0 - 5
ZZUIKit/Classes/ZZViewController/ZZViewController.m

@@ -13,11 +13,6 @@
 
 @implementation ZZViewController
 
-- (void)viewDidLoad {
-    [super viewDidLoad];
-    // Do any additional setup after loading the view.
-}
-
 -(void)dealloc{
     NSLog(@"%s",__FUNCTION__);
 }