Commit 50da73b7 authored by gomore@gomoretech.com's avatar gomore@gomoretech.com

优化打包路径

parent ca148f97
......@@ -15,14 +15,14 @@ PODS:
- AFNetworking/UIKit (3.1.0):
- AFNetworking/NSURLSession
- AliyunOSSiOS (2.6.0)
- Bugly (2.4.7)
- Bugly (2.4.8)
- DACircularProgress (2.3.1)
- DZNEmptyDataSet (1.8.1)
- FDFullscreenPopGesture (1.1)
- iCarousel (1.8.3)
- IQKeyboardManager (4.0.8)
- JCore (1.1.1)
- JPush (3.0.2):
- IQKeyboardManager (4.0.10)
- JCore (1.1.5)
- JPush (3.0.6):
- JCore (~> 1.1.1)
- JSONModel (1.2.0)
- Masonry (1.0.2)
......@@ -52,15 +52,15 @@ PODS:
- UICountingLabel (1.2.0)
- UITableView+FDTemplateLayoutCell (1.6)
- UMengAnalytics (4.2.4)
- UMengUShare/Core (6.4.1):
- UMengUShare/Core (6.4.5):
- UMengUShare/Network
- UMengUShare/Network (6.4.1)
- UMengUShare/Social/ReducedSina (6.4.1):
- UMengUShare/Network (6.4.5)
- UMengUShare/Social/ReducedSina (6.4.5):
- UMengUShare/Core
- UMengUShare/Social/ReducedWeChat (6.4.1):
- UMengUShare/Social/ReducedWeChat (6.4.5):
- UMengUShare/Core
- WYPopoverController (0.3.9)
- WZLBadge (1.2.5)
- WZLBadge (1.2.6)
- YXAlertController (1.0.7)
DEPENDENCIES:
......@@ -91,14 +91,14 @@ DEPENDENCIES:
SPEC CHECKSUMS:
AFNetworking: 5e0e199f73d8626b11e79750991f5d173d1f8b67
AliyunOSSiOS: '058b038cc82000dadb8f8e3893a97243124f2898'
Bugly: 2c256069145f550171907c5cb1c0f84ad291f6c1
Bugly: da3c02408c14838d498429320545a8e439392978
DACircularProgress: 4dd437c0fc3da5161cb289e07ac449493d41db71
DZNEmptyDataSet: 9525833b9e68ac21c30253e1d3d7076cc828eaa7
FDFullscreenPopGesture: a8a620179e3d9c40e8e00256dcee1c1a27c6d0f0
iCarousel: d782f635afac190c49bb8ee455882284cff8b85f
IQKeyboardManager: 1a8189fa153bf09044355ee0ad36826f6767e7f7
JCore: 2210a789c8efb7dc2a46b1c24d2209b995b18ad2
JPush: 01a693fafe51b93eafc2e368bbc7a7cc07e12ce4
IQKeyboardManager: 593ee99b88381f4b9ccb22bd680f22606351bd41
JCore: 9bd9c770c877c583d98b90a68792b8361974c231
JPush: c41be50eb1a574a66aeb68d237f00a4ec6ec3a82
JSONModel: 12523685c4b623553ccf844bbbf7007624317b2c
Masonry: 7c429b56da9d4ee0bbb3ed77a5ea710d6a5df39e
MBProgressHUD: 1569cf7ace17a8bac47aabfbb8580a49690386d1
......@@ -110,9 +110,9 @@ SPEC CHECKSUMS:
UICountingLabel: 1db4e7d023e1762171eb226d6dff47a7a84f27aa
UITableView+FDTemplateLayoutCell: 5c949b4a5059c404b442926c0e80f81d10a2d66f
UMengAnalytics: ef8d45f94c0e5771dc364cf6a5731d9d3b101da2
UMengUShare: 7756e2e46ceba04e3000fb2c9b1d3f61784ca2ff
UMengUShare: a5711c54e640b04e3048e931d2b88d50f9cfa55c
WYPopoverController: a9db25ac2841a686acdc0f3a99bdb21545db32f4
WZLBadge: 16c08aa0a645e2591690f21cbcb410a3d878c7ac
WZLBadge: 9ec779dcfd94c825518b395e8315fccaabff1bfa
YXAlertController: 68e27c48976fa9ecc0b82e63166b67863be8b70b
PODFILE CHECKSUM: 4b56e3ba89ba6d8693f5d5775770671ed0c82ac3
......
......@@ -2,7 +2,7 @@
// Bugly.h
// Bugly
//
// Version: 2.4(7)
// Version: 2.4(8)
//
// Copyright (c) 2016年 Bugly. All rights reserved.
//
......@@ -135,6 +135,8 @@ BLY_START_NONNULL
*/
+ (BOOL)isAppCrashedOnStartUpExceedTheLimit;
+ (void)setComponentIdentifier:(NSString *)componentId version:(NSString *)version;
BLY_END_NONNULL
@end
//
// BuglyLog.h
//
// Copyright © 2016年 tencent.com. All rights reserved.
// Copyright © 2017 tencent.com. All rights reserved.
//
#import <Foundation/Foundation.h>
......@@ -17,9 +17,9 @@ typedef NS_ENUM(NSUInteger, BuglyLogLevel) {
};
#pragma mark -
FOUNDATION_EXPORT void BLYLog(BuglyLogLevel level, NSString *format, ...);
OBJC_EXTERN void BLYLog(BuglyLogLevel level, NSString *format, ...) NS_FORMAT_FUNCTION(2, 3);
FOUNDATION_EXPORT void BLYLogv(BuglyLogLevel level, NSString *format, va_list args);
OBJC_EXTERN void BLYLogv(BuglyLogLevel level, NSString *format, va_list args) NS_FORMAT_FUNCTION(2, 0);
#pragma mark -
#define BUGLY_LOG_MACRO(_level, fmt, ...) [BuglyLog level:_level tag:nil log:fmt, ##__VA_ARGS__]
......@@ -40,14 +40,14 @@ FOUNDATION_EXPORT void BLYLogv(BuglyLogLevel level, NSString *format, va_list ar
*
* @param printConsole 是否打印到控制台,默认NO
*/
+ (void)initLogger:(BuglyLogLevel) level consolePrint:(BOOL) printConsole;
+ (void)initLogger:(BuglyLogLevel) level consolePrint:(BOOL)printConsole;
/**
* @brief 打印BLYLogLevelInfo日志
*
* @param format 日志内容 总日志大小限制为:字符串长度30k,条数200
*/
+ (void)log:(NSString *)format, ...;
+ (void)log:(NSString *)format, ... NS_FORMAT_FUNCTION(1, 2);
/**
* @brief 打印日志
......@@ -63,7 +63,7 @@ FOUNDATION_EXPORT void BLYLogv(BuglyLogLevel level, NSString *format, va_list ar
* @param level 日志级别
* @param format 日志内容 总日志大小限制为:字符串长度30k,条数200
*/
+ (void)level:(BuglyLogLevel) level log:(NSString *)format, ...;
+ (void)level:(BuglyLogLevel) level log:(NSString *)format, ... NS_FORMAT_FUNCTION(2, 3);
/**
* @brief 打印日志
......@@ -72,6 +72,6 @@ FOUNDATION_EXPORT void BLYLogv(BuglyLogLevel level, NSString *format, va_list ar
* @param tag 日志模块分类
* @param format 日志内容 总日志大小限制为:字符串长度30k,条数200
*/
+ (void)level:(BuglyLogLevel) level tag:(NSString *) tag log:(NSString *)format, ...;
+ (void)level:(BuglyLogLevel) level tag:(NSString *) tag log:(NSString *)format, ... NS_FORMAT_FUNCTION(3, 4);
@end
framework module Bugly {
umbrella header "Bugly.h"
export *
module * { export * }
link framework "Foundation"
link framework "Security"
link framework "SystemConfiguration"
link "c++"
link "z"
}
../../../../UMengUShare/UShareSDK/UMSocialSDK/UMSocialCore.framework/Headers/UMSBaeViewController.h
\ No newline at end of file
../../../../UMengUShare/UShareSDK/UMSocialSDK/UMSocialCore.framework/Headers/UMSocialSOAuthViewController.h
\ No newline at end of file
../../../../UMengUShare/UShareSDK/UMSocialSDK/UMSocialCore.framework/Headers/UMSocialShareEditViewController.h
\ No newline at end of file
......@@ -38,7 +38,7 @@
/**
Returns YES if IQKeyboardManager asking for `canBecomeFirstResponder. Useful when doing custom work in `textFieldShouldBeginEditing:` delegate.
*/
@property (nonatomic, readonly) BOOL isAskingCanBecomeFirstResponder;
@property (nonatomic, readonly) BOOL isAskingCanBecomeFirstResponder __attribute__((deprecated("isAskingCanBecomeFirstResponder property was come to existence as a workaround to handle `textFieldShouldBeginEditing:` multiple call issue, but we removed `canBecomeFirstResponder` method call from library, now this property make no sense and will be removed in future releases. From now this property will always return NO because of not calling `canBecomeFirstResponder` method. Please update your code/logic in `textFieldShouldBeginEditing:` method.")));
///----------------------
/// @name viewControllers
......
......@@ -24,7 +24,7 @@
#import "IQUIView+Hierarchy.h"
#import <UIKit/UICollectionView.h>
#import <UIKit/UIAlertController.h>
#import <UIKit/UITableView.h>
#import <UIKit/UITextView.h>
#import <UIKit/UITextField.h>
......@@ -38,16 +38,9 @@
@implementation UIView (IQ_UIView_Hierarchy)
-(void)_setIsAskingCanBecomeFirstResponder:(BOOL)isAskingCanBecomeFirstResponder
{
objc_setAssociatedObject(self, @selector(isAskingCanBecomeFirstResponder), @(isAskingCanBecomeFirstResponder), OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}
-(BOOL)isAskingCanBecomeFirstResponder
{
NSNumber *isAskingCanBecomeFirstResponder = objc_getAssociatedObject(self, @selector(isAskingCanBecomeFirstResponder));
return [isAskingCanBecomeFirstResponder boolValue];
return NO;
}
-(UIViewController*)viewController
......@@ -103,24 +96,26 @@
while (superview)
{
static Class UITableViewCellScrollViewClass = Nil; //UITableViewCell
static Class UITableViewWrapperViewClass = Nil; //UITableViewCell
static Class UIQueuingScrollViewClass = Nil; //UIPageViewController
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
UITableViewCellScrollViewClass = NSClassFromString(@"UITableViewCellScrollView");
UITableViewWrapperViewClass = NSClassFromString(@"UITableViewWrapperView");
UIQueuingScrollViewClass = NSClassFromString(@"_UIQueuingScrollView");
});
if ([superview isKindOfClass:classType] &&
([superview isKindOfClass:UITableViewCellScrollViewClass] == NO) &&
([superview isKindOfClass:UITableViewWrapperViewClass] == NO) &&
([superview isKindOfClass:UIQueuingScrollViewClass] == NO))
if ([superview isKindOfClass:classType])
{
return superview;
//If it's UIScrollView, then validating for special cases
if ([superview isKindOfClass:[UIScrollView class]])
{
NSString *classNameString = NSStringFromClass([superview class]);
//UITableViewCellScrollView, UITableViewWrapperView, _UIQueuingScrollView
if ((([classNameString hasPrefix:@"UITableView"] && ([classNameString hasSuffix:@"CellScrollView"] || [classNameString hasSuffix:@"WrapperView"])) || [classNameString hasPrefix:@"_"]) == NO)
{
return superview;
}
}
else
{
return superview;
}
}
else superview = superview.superview;
superview = superview.superview;
}
return nil;
......@@ -128,23 +123,22 @@
-(BOOL)_IQcanBecomeFirstResponder
{
[self _setIsAskingCanBecomeFirstResponder:YES];
BOOL _IQcanBecomeFirstResponder = ([self canBecomeFirstResponder] && [self isUserInteractionEnabled] && ![self isHidden] && [self alpha]!=0.0 && ![self isAlertViewTextField] && ![self isSearchBarTextField]);
BOOL _IQcanBecomeFirstResponder = NO;
if ([self isKindOfClass:[UITextField class]])
{
_IQcanBecomeFirstResponder = [(UITextField*)self isEnabled];
}
else if ([self isKindOfClass:[UITextView class]])
{
_IQcanBecomeFirstResponder = [(UITextView*)self isEditable];
}
if (_IQcanBecomeFirstResponder == YES)
{
if ([self isKindOfClass:[UITextField class]])
{
_IQcanBecomeFirstResponder = [(UITextField*)self isEnabled];
}
else if ([self isKindOfClass:[UITextView class]])
{
_IQcanBecomeFirstResponder = [(UITextView*)self isEditable];
}
_IQcanBecomeFirstResponder = ([self isUserInteractionEnabled] && ![self isHidden] && [self alpha]!=0.0 && ![self isAlertViewTextField] && ![self isSearchBarTextField]);
}
[self _setIsAskingCanBecomeFirstResponder:NO];
return _IQcanBecomeFirstResponder;
}
......@@ -314,28 +308,44 @@
-(BOOL)isSearchBarTextField
{
static Class UISearchBarTextFieldClass = Nil; //UISearchBar
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
UISearchBarTextFieldClass = NSClassFromString(@"UISearchBarTextField");
});
return ([self isKindOfClass:UISearchBarTextFieldClass] || [self isKindOfClass:[UISearchBar class]]);
UIResponder *searchBar = [self nextResponder];
BOOL isSearchBarTextField = NO;
while (searchBar && isSearchBarTextField == NO)
{
if ([searchBar isKindOfClass:[UISearchBar class]])
{
isSearchBarTextField = YES;
break;
}
else if ([searchBar isKindOfClass:[UIViewController class]]) //If found viewcontroller but still not found UISearchBar then it's not the search bar textfield
{
break;
}
searchBar = [searchBar nextResponder];
}
return isSearchBarTextField;
}
-(BOOL)isAlertViewTextField
{
//Special textFields,textViews,scrollViews
static Class UIAlertSheetTextFieldClass = Nil; //UIAlertView
static Class UIAlertSheetTextFieldClass_iOS8 = Nil; //UIAlertView
UIResponder *alertViewController = [self viewController];
BOOL isAlertViewTextField = NO;
while (alertViewController && isAlertViewTextField == NO)
{
if ([alertViewController isKindOfClass:[UIAlertController class]])
{
isAlertViewTextField = YES;
break;
}
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
UIAlertSheetTextFieldClass = NSClassFromString(@"UIAlertSheetTextField");
UIAlertSheetTextFieldClass_iOS8 = NSClassFromString(@"_UIAlertControllerTextField");
});
alertViewController = [alertViewController nextResponder];
}
return ([self isKindOfClass:UIAlertSheetTextFieldClass] || [self isKindOfClass:UIAlertSheetTextFieldClass_iOS8]);
return isAlertViewTextField;
}
@end
......
......@@ -234,40 +234,44 @@ extern NSInteger const kIQPreviousNextButtonToolbarTag;
///---------------------------------------------
/**
Disable distance handling within the scope of disabled distance handling viewControllers classes. Within this scope, 'enabled' property is ignored. Class should be kind of UIViewController.
Disable distance handling within the scope of disabled distance handling viewControllers classes. Within this scope, 'enabled' property is ignored. Class should be kind of UIViewController. Default is [UITableViewController, UIAlertController, _UIAlertControllerTextFieldViewController].
*/
@property(nonatomic, strong, nonnull, readonly) NSMutableSet<Class> *disabledDistanceHandlingClasses;
/**
Enable distance handling within the scope of enabled distance handling viewControllers classes. Within this scope, 'enabled' property is ignored. Class should be kind of UIViewController. If same Class is added in disabledDistanceHandlingClasses list, then enabledDistanceHandlingClasses will we ignored.
Enable distance handling within the scope of enabled distance handling viewControllers classes. Within this scope, 'enabled' property is ignored. Class should be kind of UIViewController. Default is [].
*/
@property(nonatomic, strong, nonnull, readonly) NSMutableSet<Class> *enabledDistanceHandlingClasses;
/**
Disable automatic toolbar creation within the scope of disabled toolbar viewControllers classes. Within this scope, 'enableAutoToolbar' property is ignored. Class should be kind of UIViewController.
Disable automatic toolbar creation within the scope of disabled toolbar viewControllers classes. Within this scope, 'enableAutoToolbar' property is ignored. Class should be kind of UIViewController. Default is [UIAlertController, _UIAlertControllerTextFieldViewController].
*/
@property(nonatomic, strong, nonnull, readonly) NSMutableSet<Class> *disabledToolbarClasses;
/**
Enable automatic toolbar creation within the scope of enabled toolbar viewControllers classes. Within this scope, 'enableAutoToolbar' property is ignored. Class should be kind of UIViewController. If same Class is added in disabledToolbarClasses list, then enabledToolbarClasses will be ignored.
Enable automatic toolbar creation within the scope of enabled toolbar viewControllers classes. Within this scope, 'enableAutoToolbar' property is ignored. Class should be kind of UIViewController. Default is [].
*/
@property(nonatomic, strong, nonnull, readonly) NSMutableSet<Class> *enabledToolbarClasses;
/**
Allowed subclasses of UIView to add all inner textField, this will allow to navigate between textField contains in different superview. Class should be kind of UIView.
Allowed subclasses of UIView to add all inner textField, this will allow to navigate between textField contains in different superview. Class should be kind of UIView. Default is [UITableView, UICollectionView, IQPreviousNextView].
*/
@property(nonatomic, strong, nonnull, readonly) NSMutableSet<Class> *toolbarPreviousNextAllowedClasses;
/**
Disabled classes to ignore 'shouldResignOnTouchOutside' property, Class should be kind of UIViewController.
Disabled classes to ignore 'shouldResignOnTouchOutside' property, Class should be kind of UIViewController. Default is [UIAlertController, UIAlertControllerTextFieldViewController]
*/
@property(nonatomic, strong, nonnull, readonly) NSMutableSet<Class> *disabledTouchResignedClasses;
/**
Enabled classes to forcefully enable 'shouldResignOnTouchOutsite' property. Class should be kind of UIViewController. If same Class is added in disabledTouchResignedClasses list, then enabledTouchResignedClasses will be ignored.
Enabled classes to forcefully enable 'shouldResignOnTouchOutsite' property. Class should be kind of UIViewController. Default is [].
*/
@property(nonatomic, strong, nonnull, readonly) NSMutableSet<Class> *enabledTouchResignedClasses;
/**
if shouldResignOnTouchOutside is enabled then you can customise the behaviour to not recognise gesture touches on some specific view subclasses. Class should be kind of UIView. Default is [UIControl, UINavigationBar]
*/
@property(nonatomic, strong, nonnull, readonly) NSMutableSet<Class> *touchResignedGestureIgnoreClasses;
///-------------------------------------------
/// @name Third Party Library support
......@@ -275,20 +279,29 @@ extern NSInteger const kIQPreviousNextButtonToolbarTag;
///-------------------------------------------
/**
Add customised Notification for third party customised TextField/TextView. Please be aware that the NSNotification object must be idential to UITextField/UITextView NSNotification objects and customised TextField/TextView support must be idential to UITextField/UITextView.
Add/Remove customised Notification for third party customised TextField/TextView. Please be aware that the NSNotification object must be idential to UITextField/UITextView NSNotification objects and customised TextField/TextView support must be idential to UITextField/UITextView.
@param didBeginEditingNotificationName This should be identical to UITextViewTextDidBeginEditingNotification
@param didEndEditingNotificationName This should be identical to UITextViewTextDidEndEditingNotification
*/
-(void)registerTextFieldViewClass:(nonnull Class)aClass
didBeginEditingNotificationName:(nonnull NSString *)didBeginEditingNotificationName
didEndEditingNotificationName:(nonnull NSString *)didEndEditingNotificationName;
-(void)unregisterTextFieldViewClass:(nonnull Class)aClass
didBeginEditingNotificationName:(nonnull NSString *)didBeginEditingNotificationName
didEndEditingNotificationName:(nonnull NSString *)didEndEditingNotificationName;
///----------------------------------------
/// @name Debugging.
/// @name Debugging & Developer options
///----------------------------------------
@property(nonatomic, assign) BOOL enableDebugging;
/**
@warning Use below methods to completely enable/disable notifications registered by library internally. Please keep in mind that library is totally dependent on NSNotification of UITextField, UITextField, Keyboard etc. If you do unregisterAllNotifications then library will not work at all. You should only use below methods if you want to completedly disable all library functions. You should use below methods at your own risk.
*/
-(void)registerAllNotifications;
-(void)unregisterAllNotifications;
///----------------------------------------
/// @name Must not be used for subclassing.
///----------------------------------------
......@@ -304,14 +317,3 @@ extern NSInteger const kIQPreviousNextButtonToolbarTag;
+ (nonnull instancetype)new NS_UNAVAILABLE;
@end
@interface IQKeyboardManager(IQKeyboardManagerDeprecated)
/**
If YES, then hide previous/next button. Default is NO.
*/
@property(nonatomic, assign) BOOL shouldHidePreviousNext __attribute__((deprecated("Please use `previousNextDisplayMode` for better handling of previous/next button display. This property will be removed in future releases in favor of `previousNextDisplayMode`.")));
@end
This diff is collapsed.
......@@ -85,14 +85,14 @@
/**
Add all the UITextField/UITextView responderView's.
@param UIView object to register all it's responder subviews.
@param view object to register all it's responder subviews.
*/
-(void)addResponderFromView:(nonnull UIView*)view;
/**
Remove all the UITextField/UITextView responderView's.
@param UIView object to unregister all it's responder subviews.
@param view object to unregister all it's responder subviews.
*/
-(void)removeResponderFromView:(nonnull UIView*)view;
......
......@@ -106,7 +106,7 @@ NSString *const kIQTextFieldReturnKeyType = @"kIQTextFieldReturnKeyType";
if ([view isKindOfClass:[UITextField class]] || [view isKindOfClass:[UITextView class]])
{
UITextField *textField = (UITextField*)view;
textField.returnKeyType = [dict[kIQTextFieldReturnKeyType] integerValue];
textField.returnKeyType = (UIReturnKeyType)[dict[kIQTextFieldReturnKeyType] integerValue];
textField.delegate = dict[kIQTextFieldDelegate];
}
[textFieldInfoCache removeObject:dict];
......@@ -542,8 +542,11 @@ NSString *const kIQTextFieldReturnKeyType = @"kIQTextFieldReturnKeyType";
delegate = dict[kIQTextFieldDelegate];
}
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
if ([delegate respondsToSelector:@selector(textView:shouldInteractWithURL:inRange:)])
return [delegate textView:textView shouldInteractWithURL:URL inRange:characterRange];
#pragma clang diagnostic pop
else
return YES;
}
......@@ -558,8 +561,11 @@ NSString *const kIQTextFieldReturnKeyType = @"kIQTextFieldReturnKeyType";
delegate = dict[kIQTextFieldDelegate];
}
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
if ([delegate respondsToSelector:@selector(textView:shouldInteractWithTextAttachment:inRange:)])
return [delegate textView:textView shouldInteractWithTextAttachment:textAttachment inRange:characterRange];
#pragma clang diagnostic pop
else
return YES;
}
......@@ -573,7 +579,7 @@ NSString *const kIQTextFieldReturnKeyType = @"kIQTextFieldReturnKeyType";
if ([view isKindOfClass:[UITextField class]] || [view isKindOfClass:[UITextView class]])
{
UITextField *textField = (UITextField*)view;
textField.returnKeyType = [dict[kIQTextFieldReturnKeyType] integerValue];
textField.returnKeyType = (UIReturnKeyType)[dict[kIQTextFieldReturnKeyType] integerValue];
textField.delegate = dict[kIQTextFieldDelegate];
}
}
......
File mode changed from 100755 to 100644
......@@ -99,7 +99,7 @@
[super layoutSubviews];
[placeHolderLabel sizeToFit];
placeHolderLabel.frame = CGRectMake(8, 8, CGRectGetWidth(self.frame)-16, CGRectGetHeight(placeHolderLabel.frame));
placeHolderLabel.frame = CGRectMake(4, 8, CGRectGetWidth(self.frame)-16, CGRectGetHeight(placeHolderLabel.frame));
}
-(void)setPlaceholder:(NSString *)placeholder
......
File mode changed from 100755 to 100644
......@@ -210,15 +210,6 @@
else return NSOrderedSame;
}];
static Class IQUIToolbarTextButtonClass = Nil;
static Class IQUIToolbarButtonClass = Nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
IQUIToolbarTextButtonClass = NSClassFromString(@"UIToolbarTextButton");
IQUIToolbarButtonClass = NSClassFromString(@"UIToolbarButton");
});
for (UIView *barButtonItemView in subviews)
{
if (isTitleBarButtonFound == YES)
......@@ -230,10 +221,15 @@
{
isTitleBarButtonFound = YES;
}
else if ([barButtonItemView isKindOfClass:IQUIToolbarTextButtonClass] ||
[barButtonItemView isKindOfClass:IQUIToolbarButtonClass])
else
{
leftRect = barButtonItemView.frame;
NSString *classNameString = NSStringFromClass([barButtonItemView class]);
//If it's UIToolbarButton or UIToolbarTextButton
if (([classNameString hasPrefix:@"UIToolbar"] && [classNameString hasSuffix:@"Button"]))
{
leftRect = barButtonItemView.frame;
}
}
}
......
......@@ -179,7 +179,7 @@
@param action Right button action name. Usually 'doneAction:(IQBarButtonItem*)item'.
@param shouldShowPlaceholder A boolean to indicate whether to show textField placeholder on IQToolbar'.
*/
- (void)addRightButtonOnKeyboardWithImage:(nullable UIImage*)image target:(nullable id)target action:(nullable SEL)action shouldShowPlaceholder:(BOOL)showPlaceholder;
- (void)addRightButtonOnKeyboardWithImage:(nullable UIImage*)image target:(nullable id)target action:(nullable SEL)action shouldShowPlaceholder:(BOOL)shouldShowPlaceholder;
/**
Helper function to add Right button on keyboard.
......
......@@ -259,11 +259,11 @@
[(UITextField*)self setInputAccessoryView:toolbar];
}
- (void)addRightButtonOnKeyboardWithImage:(UIImage*)image target:(id)target action:(SEL)action shouldShowPlaceholder:(BOOL)showPlaceholder
- (void)addRightButtonOnKeyboardWithImage:(UIImage*)image target:(id)target action:(SEL)action shouldShowPlaceholder:(BOOL)shouldShowPlaceholder
{
NSString *title = nil;
if (showPlaceholder)
if (shouldShowPlaceholder)
title = [self drawingPlaceholderText];
[self addRightButtonOnKeyboardWithImage:image target:target action:action titleText:title];
......@@ -308,11 +308,11 @@
[(UITextField*)self setInputAccessoryView:toolbar];
}
- (void)addRightButtonOnKeyboardWithText:(NSString*)text target:(id)target action:(SEL)action shouldShowPlaceholder:(BOOL)showPlaceholder
- (void)addRightButtonOnKeyboardWithText:(NSString*)text target:(id)target action:(SEL)action shouldShowPlaceholder:(BOOL)shouldShowPlaceholder
{
NSString *title = nil;
if (showPlaceholder)
if (shouldShowPlaceholder)
title = [self drawingPlaceholderText];
[self addRightButtonOnKeyboardWithText:text target:target action:action titleText:title];
......@@ -362,11 +362,11 @@
[(UITextField*)self setInputAccessoryView:toolbar];
}
-(void)addDoneOnKeyboardWithTarget:(id)target action:(SEL)action shouldShowPlaceholder:(BOOL)showPlaceholder
-(void)addDoneOnKeyboardWithTarget:(id)target action:(SEL)action shouldShowPlaceholder:(BOOL)shouldShowPlaceholder
{
NSString *title = nil;
if (showPlaceholder)
if (shouldShowPlaceholder)
title = [self drawingPlaceholderText];
[self addDoneOnKeyboardWithTarget:target action:action titleText:title];
......@@ -423,11 +423,11 @@
[(UITextField*)self setInputAccessoryView:toolbar];
}
- (void)addLeftRightOnKeyboardWithTarget:(id)target leftButtonTitle:(NSString*)leftTitle rightButtonTitle:(NSString*)rightTitle leftButtonAction:(SEL)leftAction rightButtonAction:(SEL)rightAction shouldShowPlaceholder:(BOOL)showPlaceholder
- (void)addLeftRightOnKeyboardWithTarget:(id)target leftButtonTitle:(NSString*)leftTitle rightButtonTitle:(NSString*)rightTitle leftButtonAction:(SEL)leftAction rightButtonAction:(SEL)rightAction shouldShowPlaceholder:(BOOL)shouldShowPlaceholder
{
NSString *title = nil;
if (showPlaceholder)
if (shouldShowPlaceholder)
title = [self drawingPlaceholderText];
[self addLeftRightOnKeyboardWithTarget:target leftButtonTitle:leftTitle rightButtonTitle:rightTitle leftButtonAction:leftAction rightButtonAction:rightAction titleText:title];
......@@ -482,11 +482,11 @@
[(UITextField*)self setInputAccessoryView:toolbar];
}
-(void)addCancelDoneOnKeyboardWithTarget:(id)target cancelAction:(SEL)cancelAction doneAction:(SEL)doneAction shouldShowPlaceholder:(BOOL)showPlaceholder
-(void)addCancelDoneOnKeyboardWithTarget:(id)target cancelAction:(SEL)cancelAction doneAction:(SEL)doneAction shouldShowPlaceholder:(BOOL)shouldShowPlaceholder
{
NSString *title = nil;
if (showPlaceholder)
if (shouldShowPlaceholder)
title = [self drawingPlaceholderText];
[self addCancelDoneOnKeyboardWithTarget:target cancelAction:cancelAction doneAction:doneAction titleText:title];
......@@ -590,11 +590,11 @@
[(UITextField*)self setInputAccessoryView:toolbar];
}
-(void)addPreviousNextDoneOnKeyboardWithTarget:(id)target previousAction:(SEL)previousAction nextAction:(SEL)nextAction doneAction:(SEL)doneAction shouldShowPlaceholder:(BOOL)showPlaceholder
-(void)addPreviousNextDoneOnKeyboardWithTarget:(id)target previousAction:(SEL)previousAction nextAction:(SEL)nextAction doneAction:(SEL)doneAction shouldShowPlaceholder:(BOOL)shouldShowPlaceholder
{
NSString *title = nil;
if (showPlaceholder)
if (shouldShowPlaceholder)
title = [self drawingPlaceholderText];
[self addPreviousNextDoneOnKeyboardWithTarget:target previousAction:previousAction nextAction:nextAction doneAction:doneAction titleText:title];
......@@ -698,11 +698,11 @@
[(UITextField*)self setInputAccessoryView:toolbar];
}
- (void)addPreviousNextRightOnKeyboardWithTarget:(nullable id)target rightButtonImage:(nullable UIImage*)rightButtonImage previousAction:(nullable SEL)previousAction nextAction:(nullable SEL)nextAction rightButtonAction:(nullable SEL)rightButtonAction shouldShowPlaceholder:(BOOL)showPlaceholder
- (void)addPreviousNextRightOnKeyboardWithTarget:(nullable id)target rightButtonImage:(nullable UIImage*)rightButtonImage previousAction:(nullable SEL)previousAction nextAction:(nullable SEL)nextAction rightButtonAction:(nullable SEL)rightButtonAction shouldShowPlaceholder:(BOOL)shouldShowPlaceholder
{
NSString *title = nil;
if (showPlaceholder)
if (shouldShowPlaceholder)
title = [self drawingPlaceholderText];
[self addPreviousNextRightOnKeyboardWithTarget:target rightButtonImage:rightButtonImage previousAction:previousAction nextAction:nextAction rightButtonAction:rightButtonAction titleText:title];
......@@ -800,11 +800,11 @@
[(UITextField*)self setInputAccessoryView:toolbar];
}
- (void)addPreviousNextRightOnKeyboardWithTarget:(id)target rightButtonTitle:(NSString*)rightButtonTitle previousAction:(SEL)previousAction nextAction:(SEL)nextAction rightButtonAction:(SEL)rightButtonAction shouldShowPlaceholder:(BOOL)showPlaceholder
- (void)addPreviousNextRightOnKeyboardWithTarget:(id)target rightButtonTitle:(NSString*)rightButtonTitle previousAction:(SEL)previousAction nextAction:(SEL)nextAction rightButtonAction:(SEL)rightButtonAction shouldShowPlaceholder:(BOOL)shouldShowPlaceholder
{
NSString *title = nil;
if (showPlaceholder)
if (shouldShowPlaceholder)
title = [self drawingPlaceholderText];
[self addPreviousNextRightOnKeyboardWithTarget:target rightButtonTitle:rightButtonTitle previousAction:previousAction nextAction:nextAction rightButtonAction:rightButtonAction titleText:title];
......
File mode changed from 100755 to 100644
......@@ -15,7 +15,7 @@
Often while developing an app, We ran into an issues where the iPhone keyboard slide up and cover the `UITextField/UITextView`. `IQKeyboardManager` allows you to prevent issues of the keyboard sliding up and cover `UITextField/UITextView` without needing you to enter any code and no additional setup required. To use `IQKeyboardManager` you simply need to add source files to your project.
####Key Features
#### Key Features
[![Issue Stats](http://issuestats.com/github/hackiftekhar/iqkeyboardmanager/badge/pr?style=flat)](http://issuestats.com/github/hackiftekhar/iqkeyboardmanager)
[![Issue Stats](http://issuestats.com/github/hackiftekhar/iqkeyboardmanager/badge/issue?style=flat)](http://issuestats.com/github/hackiftekhar/iqkeyboardmanager)
......@@ -49,7 +49,7 @@ alt="IQKeyboardManager Demo Video" width="480" height="360" border="10" /></a>
## Warning
- **If you're planning to build SDK/library/framework and wants to handle UITextField/UITextView with IQKeyboardManager then you're totally going on wrong way.** I would never suggest to add IQKeyboardManager as dependency/adding/shipping with any third-party library, instead of adding IQKeyboardManager you should implement your custom solution to achieve same result. IQKeyboardManager is totally designed for projects to help developers for their convenience, it's not designed for adding/dependency/shipping with any third-party library, because **doing this could block adoption by other developers for their projects as well(who are not using IQKeyboardManager and implemented their custom solution to handle UITextField/UITextView throught the project).**
- **If you're planning to build SDK/library/framework and wants to handle UITextField/UITextView with IQKeyboardManager then you're totally going on wrong way.** I would never suggest to add IQKeyboardManager as dependency/adding/shipping with any third-party library, instead of adding IQKeyboardManager you should implement your custom solution to achieve same result. IQKeyboardManager is totally designed for projects to help developers for their convenience, it's not designed for adding/dependency/shipping with any third-party library, because **doing this could block adoption by other developers for their projects as well(who are not using IQKeyboardManager and implemented their custom solution to handle UITextField/UITextView thought the project).**
- If IQKeybaordManager conflicts with other third-party library, then it's developer responsibility to enable/disable IQKeyboardManager when presenting/dismissing third-party library UI. Third-party libraries are not responsible to handle IQKeyboardManager.
## Requirements
......@@ -63,7 +63,7 @@ Minimum iOS Target: iOS 8.0
Minimum Xcode Version: Xcode 6.0.1
#### IQKeyboardManagerSwift:-
[![Swift 3.0 compatible](https://img.shields.io/badge/Language-Swift3-blue.svg?style=flat)](https://developer.apple.com/swift)
[![Swift 3.1 compatible](https://img.shields.io/badge/Language-Swift3-blue.svg?style=flat)](https://developer.apple.com/swift)
Minimum iOS Target: iOS 8.0
......@@ -71,7 +71,7 @@ Minimum Xcode Version: Xcode 8.0
#### Demo Project:-
Minimum Xcode Version: Xcode 8.0
Minimum Xcode Version: Xcode 8.3
Installation
......@@ -83,25 +83,28 @@ Installation
**Note:-**
- 3.3.7 is the last iOS 7 supported version.
- 4.0.5 is the last Swift2.2 supported version.
***IQKeyboardManager (Objective-C):-*** IQKeyboardManager is available through [CocoaPods](http://cocoapods.org), to install
it simply add the following line to your Podfile: ([#9](https://github.com/hackiftekhar/IQKeyboardManager/issues/9))
`pod 'IQKeyboardManager'`
*iOS8 and later* `pod 'IQKeyboardManager'`
*iOS7* `pod 'IQKeyboardManagerSwift', '3.3.7'`
***IQKeyboardManager (Swift):-*** IQKeyboardManagerSwift is available through [CocoaPods](http://cocoapods.org), to install
it simply add the following line to your Podfile: ([#236](https://github.com/hackiftekhar/IQKeyboardManager/issues/236))
*Swift 3.0 (Xcode 8.0)*
*Swift 3.1 (Xcode 8.0)*
`pod 'IQKeyboardManagerSwift'`
*Or*
`pod 'IQKeyboardManagerSwift', '4.0.6'`
`pod 'IQKeyboardManagerSwift', '4.0.9'`
*Swift 3.0(3.0.2) (Xcode 8.2)* `pod 'IQKeyboardManagerSwift', '4.0.8'`
*Swift 2.2 (Xcode 7.3)* `pod 'IQKeyboardManagerSwift', '4.0.5'`
*Swift 2.2 or 2.3 (Xcode 7.3)* `pod 'IQKeyboardManagerSwift', '4.0.5'`
*Swift 2.1.1 (Xcode 7.2)* `pod 'IQKeyboardManagerSwift', '4.0.0'`
......@@ -176,12 +179,12 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
## Known Issues:-
You can find known issues list [here](https://github.com/hackiftekhar/IQKeyboardManager/blob/master/KNOWN ISSUES.md).
You can find known issues list [here](https://github.com/hackiftekhar/IQKeyboardManager/blob/master/KNOWN%20ISSUES.md).
Manual Management:-
---
You can find some manual management tweaks & examples [here](https://github.com/hackiftekhar/IQKeyboardManager/blob/master/MANUAL MANAGEMENT.md).
You can find some manual management tweaks & examples [here](https://github.com/hackiftekhar/IQKeyboardManager/blob/master/MANUAL%20MANAGEMENT.md).
......@@ -189,9 +192,9 @@ You can find some manual management tweaks & examples [here](https://github.com/
[![IQKeyboardManager CFD](https://raw.githubusercontent.com/hackiftekhar/IQKeyboardManager/v3.3.0/Screenshot/IQKeyboardManagerCFD.jpg)](https://raw.githubusercontent.com/hackiftekhar/IQKeyboardManager/v3.3.0/Screenshot/IQKeyboardManagerCFD.jpg)
##Properties and functions usage:-
## Properties and functions usage:-
You can find some documentation about properties, methods and their uses [here](https://github.com/hackiftekhar/IQKeyboardManager/blob/master/PROPERTIES & FUNCTIONS.md).
You can find some documentation about properties, methods and their uses [here](https://github.com/hackiftekhar/IQKeyboardManager/blob/master/PROPERTIES%20%26%20FUNCTIONS.md).
LICENSE
......
......@@ -9,7 +9,7 @@
* Copyright (c) 2011 ~ 2017 Shenzhen HXHG. All rights reserved.
*/
#define JPUSH_VERSION_NUMBER 3.0.2
#define JPUSH_VERSION_NUMBER 3.0.6
#import <Foundation/Foundation.h>
......@@ -22,6 +22,10 @@
@class UNNotification;
@protocol JPUSHRegisterDelegate;
typedef void (^JPUSHTagsOperationCompletion)(NSInteger iResCode, NSSet *iTags, NSInteger seq);
typedef void (^JPUSHTagValidOperationCompletion)(NSInteger iResCode, NSSet *iTags, NSInteger seq, BOOL isBind);
typedef void (^JPUSHAliasOperationCompletion)(NSInteger iResCode, NSString *iAlias, NSInteger seq);
extern NSString *const kJPFNetworkIsConnectingNotification; // 正在连接中
extern NSString *const kJPFNetworkDidSetupNotification; // 建立连接
extern NSString *const kJPFNetworkDidCloseNotification; // 关闭连接
......@@ -137,6 +141,7 @@ typedef NS_OPTIONS(NSUInteger, JPAuthorizationOptions) {
* @param appKey 一个JPush 应用必须的,唯一的标识. 请参考 JPush 相关说明文档来获取这个标识.
* @param channel 发布渠道. 可选.
* @param isProduction 是否生产环境. 如果为开发状态,设置为 NO; 如果为生产状态,应改为 YES.
* App 证书环境取决于profile provision的配置,此处建议与证书环境保持一致.
* @param advertisingIdentifier 广告标识符(IDFA) 如果不需要使用IDFA,传nil.
*
* @discussion 提供SDK启动必须的参数, 来启动 SDK.
......@@ -186,41 +191,102 @@ typedef NS_OPTIONS(NSUInteger, JPAuthorizationOptions) {
*/
+ (void)handleRemoteNotification:(NSDictionary *)remoteInfo;
/*!
* Tags操作接口
* 支持增加/覆盖/删除/清空/查询操作
* 详情请参考文档:https://docs.jiguang.cn/jpush/client/iOS/ios_api/)
*/
///----------------------------------------------------
/// @name Tag alias setting 设置别名与标签
///----------------------------------------------------
/**
增加tags
/*!
* 下面的接口是可选的
* 设置标签和(或)别名(若参数为nil,则忽略;若是空对象,则清空;详情请参考文档:https://docs.jiguang.cn/jpush/client/iOS/ios_api/)
* setTags:alias:fetchCompletionHandle:是新的设置标签别名的方法,不再需要显示声明回调函数,只需要在block里面处理设置结果即可.
* WARN: 使用block时需要注意循环引用问题
@param tags 需要增加的tags集合
@param completion 响应回调
@param seq 请求序列号
*/
+ (void) setTags:(NSSet *)tags
alias:(NSString *)alias
callbackSelector:(SEL)cbSelector
target:(id)theTarget __attribute__((deprecated("JPush 2.1.1 版本已过期")));
+ (void)addTags:(NSSet<NSString *> *)tags
completion:(JPUSHTagsOperationCompletion)completion
seq:(NSInteger)seq;
+ (void) setTags:(NSSet *)tags
alias:(NSString *)alias
callbackSelector:(SEL)cbSelector
object:(id)theTarget;
/**
覆盖tags
调用该接口会覆盖用户所有的tags
+ (void) setTags:(NSSet *)tags
callbackSelector:(SEL)cbSelector
object:(id)theTarget;
@param tags 需要设置的tags集合
@param completion 响应回调
@param seq 请求序列号
*/
+ (void)setTags:(NSSet<NSString *> *)tags
completion:(JPUSHTagsOperationCompletion)completion
seq:(NSInteger)seq;
+ (void)setTags:(NSSet *)tags
alias:(NSString *)alias
fetchCompletionHandle:(void (^)(int iResCode, NSSet *iTags, NSString *iAlias))completionHandler;
/**
删除指定tags
+ (void) setTags:(NSSet *)tags
aliasInbackground:(NSString *)alias;
@param tags 需要删除的tags集合
@param completion 响应回调
@param seq 请求序列号
*/
+ (void)deleteTags:(NSSet<NSString *> *)tags
completion:(JPUSHTagsOperationCompletion)completion
seq:(NSInteger)seq;
/**
清空所有tags
@param completion 响应回调
@param seq 请求序列号
*/
+ (void)cleanTags:(JPUSHTagsOperationCompletion)completion
seq:(NSInteger)seq;
/**
查询全部tags
@param completion 响应回调,请在回调中获取查询结果
@param seq 请求序列号
*/
+ (void)getAllTags:(JPUSHTagsOperationCompletion)completion
seq:(NSInteger)seq;
/**
验证tag是否绑定
@param completion 响应回调,回调中查看是否绑定
@param seq 请求序列号
*/
+ (void)validTag:(NSString *)tag
completion:(JPUSHTagValidOperationCompletion)completion
seq:(NSInteger)seq;
/**
设置Alias
@param alias 需要设置的alias
@param completion 响应回调
@param seq 请求序列号
*/
+ (void)setAlias:(NSString *)alias
callbackSelector:(SEL)cbSelector
object:(id)theTarget;
completion:(JPUSHAliasOperationCompletion)completion
seq:(NSInteger)seq;
/**
删除alias
@param completion 响应回调
@param seq 请求序列号
*/
+ (void)deleteAlias:(JPUSHAliasOperationCompletion)completion
seq:(NSInteger)seq;
/**
查询当前alias
@param completion 响应回调
@param seq 请求序列号
*/
+ (void)getAlias:(JPUSHAliasOperationCompletion)completion
seq:(NSInteger)seq;
/*!
* @abstract 过滤掉无效的 tags
......@@ -230,7 +296,6 @@ callbackSelector:(SEL)cbSelector
*/
+ (NSSet *)filterValidTags:(NSSet *)tags;
///----------------------------------------------------
/// @name Stats 统计功能
///----------------------------------------------------
......@@ -456,7 +521,7 @@ callbackSelector:(SEL)cbSelector
*
* SDK 默认开启的日志级别为: Info. 只显示必要的信息, 不打印调试日志.
*
* 调用本接口可打开日志级别为: Debug, 打印调试日志.
* 请在SDK启动后调用本接口,调用本接口可打开日志级别为: Debug, 打印调试日志.
*/
+ (void)setDebugMode;
......@@ -471,6 +536,40 @@ callbackSelector:(SEL)cbSelector
*/
+ (void)setLogOFF;
///----------------------------------------------------
///********************下列方法已过期********************
///**************请使用新版tag/alias操作接口**************
///----------------------------------------------------
/// @name Tag alias setting 设置别名与标签
///----------------------------------------------------
/*!
* 下面的接口是可选的
* 设置标签和(或)别名(若参数为nil,则忽略;若是空对象,则清空;详情请参考文档:https://docs.jiguang.cn/jpush/client/iOS/ios_api/)
* setTags:alias:fetchCompletionHandle:是新的设置标签别名的方法,不再需要显示声明回调函数,只需要在block里面处理设置结果即可.
* WARN: 使用block时需要注意循环引用问题
*/
+ (void) setTags:(NSSet *)tags
alias:(NSString *)alias
callbackSelector:(SEL)cbSelector
target:(id)theTarget __attribute__((deprecated("JPush 2.1.1 版本已过期")));
+ (void) setTags:(NSSet *)tags
alias:(NSString *)alias
callbackSelector:(SEL)cbSelector
object:(id)theTarget __attribute__((deprecated("JPush 3.0.6 版本已过期")));
+ (void) setTags:(NSSet *)tags
callbackSelector:(SEL)cbSelector
object:(id)theTarget __attribute__((deprecated("JPush 3.0.6 版本已过期")));
+ (void)setTags:(NSSet *)tags
alias:(NSString *)alias
fetchCompletionHandle:(void (^)(int iResCode, NSSet *iTags, NSString *iAlias))completionHandler __attribute__((deprecated("JPush 3.0.6 版本已过期")));
+ (void) setTags:(NSSet *)tags
aliasInbackground:(NSString *)alias __attribute__((deprecated("JPush 3.0.6 版本已过期")));
+ (void)setAlias:(NSString *)alias
callbackSelector:(SEL)cbSelector
object:(id)theTarget __attribute__((deprecated("JPush 3.0.6 版本已过期")));
@end
@class UNUserNotificationCenter;
......
......@@ -15,14 +15,14 @@ PODS:
- AFNetworking/UIKit (3.1.0):
- AFNetworking/NSURLSession
- AliyunOSSiOS (2.6.0)
- Bugly (2.4.7)
- Bugly (2.4.8)
- DACircularProgress (2.3.1)
- DZNEmptyDataSet (1.8.1)
- FDFullscreenPopGesture (1.1)
- iCarousel (1.8.3)
- IQKeyboardManager (4.0.8)
- JCore (1.1.1)
- JPush (3.0.2):
- IQKeyboardManager (4.0.10)
- JCore (1.1.5)
- JPush (3.0.6):
- JCore (~> 1.1.1)
- JSONModel (1.2.0)
- Masonry (1.0.2)
......@@ -52,15 +52,15 @@ PODS:
- UICountingLabel (1.2.0)
- UITableView+FDTemplateLayoutCell (1.6)
- UMengAnalytics (4.2.4)
- UMengUShare/Core (6.4.1):
- UMengUShare/Core (6.4.5):
- UMengUShare/Network
- UMengUShare/Network (6.4.1)
- UMengUShare/Social/ReducedSina (6.4.1):
- UMengUShare/Network (6.4.5)
- UMengUShare/Social/ReducedSina (6.4.5):
- UMengUShare/Core
- UMengUShare/Social/ReducedWeChat (6.4.1):
- UMengUShare/Social/ReducedWeChat (6.4.5):
- UMengUShare/Core
- WYPopoverController (0.3.9)
- WZLBadge (1.2.5)
- WZLBadge (1.2.6)
- YXAlertController (1.0.7)
DEPENDENCIES:
......@@ -91,14 +91,14 @@ DEPENDENCIES:
SPEC CHECKSUMS:
AFNetworking: 5e0e199f73d8626b11e79750991f5d173d1f8b67
AliyunOSSiOS: '058b038cc82000dadb8f8e3893a97243124f2898'
Bugly: 2c256069145f550171907c5cb1c0f84ad291f6c1
Bugly: da3c02408c14838d498429320545a8e439392978
DACircularProgress: 4dd437c0fc3da5161cb289e07ac449493d41db71
DZNEmptyDataSet: 9525833b9e68ac21c30253e1d3d7076cc828eaa7
FDFullscreenPopGesture: a8a620179e3d9c40e8e00256dcee1c1a27c6d0f0
iCarousel: d782f635afac190c49bb8ee455882284cff8b85f
IQKeyboardManager: 1a8189fa153bf09044355ee0ad36826f6767e7f7
JCore: 2210a789c8efb7dc2a46b1c24d2209b995b18ad2
JPush: 01a693fafe51b93eafc2e368bbc7a7cc07e12ce4
IQKeyboardManager: 593ee99b88381f4b9ccb22bd680f22606351bd41
JCore: 9bd9c770c877c583d98b90a68792b8361974c231
JPush: c41be50eb1a574a66aeb68d237f00a4ec6ec3a82
JSONModel: 12523685c4b623553ccf844bbbf7007624317b2c
Masonry: 7c429b56da9d4ee0bbb3ed77a5ea710d6a5df39e
MBProgressHUD: 1569cf7ace17a8bac47aabfbb8580a49690386d1
......@@ -110,9 +110,9 @@ SPEC CHECKSUMS:
UICountingLabel: 1db4e7d023e1762171eb226d6dff47a7a84f27aa
UITableView+FDTemplateLayoutCell: 5c949b4a5059c404b442926c0e80f81d10a2d66f
UMengAnalytics: ef8d45f94c0e5771dc364cf6a5731d9d3b101da2
UMengUShare: 7756e2e46ceba04e3000fb2c9b1d3f61784ca2ff
UMengUShare: a5711c54e640b04e3048e931d2b88d50f9cfa55c
WYPopoverController: a9db25ac2841a686acdc0f3a99bdb21545db32f4
WZLBadge: 16c08aa0a645e2591690f21cbcb410a3d878c7ac
WZLBadge: 9ec779dcfd94c825518b395e8315fccaabff1bfa
YXAlertController: 68e27c48976fa9ecc0b82e63166b67863be8b70b
PODFILE CHECKSUM: 4b56e3ba89ba6d8693f5d5775770671ed0c82ac3
......
This diff is collapsed.
CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/IQKeyboardManager
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/IQKeyboardManager" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/AliyunOSSiOS" "${PODS_ROOT}/Headers/Public/Bugly" "${PODS_ROOT}/Headers/Public/DACircularProgress" "${PODS_ROOT}/Headers/Public/DZNEmptyDataSet" "${PODS_ROOT}/Headers/Public/FDFullscreenPopGesture" "${PODS_ROOT}/Headers/Public/IQKeyboardManager" "${PODS_ROOT}/Headers/Public/JCore" "${PODS_ROOT}/Headers/Public/JPush" "${PODS_ROOT}/Headers/Public/JSONModel" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/MMDrawerController" "${PODS_ROOT}/Headers/Public/MWPhotoBrowser" "${PODS_ROOT}/Headers/Public/Masonry" "${PODS_ROOT}/Headers/Public/PNChart" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/UICountingLabel" "${PODS_ROOT}/Headers/Public/UITableView+FDTemplateLayoutCell" "${PODS_ROOT}/Headers/Public/UMengAnalytics" "${PODS_ROOT}/Headers/Public/UMengUShare" "${PODS_ROOT}/Headers/Public/WYPopoverController" "${PODS_ROOT}/Headers/Public/WZLBadge" "${PODS_ROOT}/Headers/Public/YXAlertController" "${PODS_ROOT}/Headers/Public/iCarousel"
OTHER_LDFLAGS = -framework "CoreGraphics" -framework "Foundation" -framework "UIKit"
OTHER_LDFLAGS = -framework "CoreGraphics" -framework "Foundation" -framework "QuartzCore" -framework "UIKit"
PODS_BUILD_DIR = $BUILD_DIR
PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_ROOT = ${SRCROOT}
......
......@@ -3,7 +3,7 @@ GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/AliyunOSSiOS" "${PODS_ROOT}/Headers/Public/Bugly" "${PODS_ROOT}/Headers/Public/DACircularProgress" "${PODS_ROOT}/Headers/Public/DZNEmptyDataSet" "${PODS_ROOT}/Headers/Public/FDFullscreenPopGesture" "${PODS_ROOT}/Headers/Public/IQKeyboardManager" "${PODS_ROOT}/Headers/Public/JCore" "${PODS_ROOT}/Headers/Public/JPush" "${PODS_ROOT}/Headers/Public/JSONModel" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/MMDrawerController" "${PODS_ROOT}/Headers/Public/MWPhotoBrowser" "${PODS_ROOT}/Headers/Public/Masonry" "${PODS_ROOT}/Headers/Public/PNChart" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/UICountingLabel" "${PODS_ROOT}/Headers/Public/UITableView+FDTemplateLayoutCell" "${PODS_ROOT}/Headers/Public/UMengAnalytics" "${PODS_ROOT}/Headers/Public/UMengUShare" "${PODS_ROOT}/Headers/Public/WYPopoverController" "${PODS_ROOT}/Headers/Public/WZLBadge" "${PODS_ROOT}/Headers/Public/YXAlertController" "${PODS_ROOT}/Headers/Public/iCarousel"
LIBRARY_SEARCH_PATHS = $(inherited) "$(PODS_ROOT)/UMengAnalytics/**" "$PODS_CONFIGURATION_BUILD_DIR/AFNetworking" "$PODS_CONFIGURATION_BUILD_DIR/AliyunOSSiOS" "$PODS_CONFIGURATION_BUILD_DIR/DACircularProgress" "$PODS_CONFIGURATION_BUILD_DIR/DZNEmptyDataSet" "$PODS_CONFIGURATION_BUILD_DIR/FDFullscreenPopGesture" "$PODS_CONFIGURATION_BUILD_DIR/IQKeyboardManager" "$PODS_CONFIGURATION_BUILD_DIR/JSONModel" "$PODS_CONFIGURATION_BUILD_DIR/MBProgressHUD" "$PODS_CONFIGURATION_BUILD_DIR/MJRefresh" "$PODS_CONFIGURATION_BUILD_DIR/MMDrawerController" "$PODS_CONFIGURATION_BUILD_DIR/MWPhotoBrowser" "$PODS_CONFIGURATION_BUILD_DIR/Masonry" "$PODS_CONFIGURATION_BUILD_DIR/PNChart" "$PODS_CONFIGURATION_BUILD_DIR/SDWebImage" "$PODS_CONFIGURATION_BUILD_DIR/UICountingLabel" "$PODS_CONFIGURATION_BUILD_DIR/UITableView+FDTemplateLayoutCell" "$PODS_CONFIGURATION_BUILD_DIR/WYPopoverController" "$PODS_CONFIGURATION_BUILD_DIR/WZLBadge" "$PODS_CONFIGURATION_BUILD_DIR/YXAlertController" "$PODS_CONFIGURATION_BUILD_DIR/iCarousel" $(inherited) "${PODS_ROOT}/JCore" $(inherited) "${PODS_ROOT}/JPush" $(inherited) "${PODS_ROOT}/UMengUShare/UShareSDK/UMSocialSDKPlugin" $(inherited) "${PODS_ROOT}/UMengUShare/UShareSDK/SocialLibraries/Sina" $(inherited) "${PODS_ROOT}/UMengUShare/UShareSDK/SocialLibraries/WeChat"
OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/AFNetworking" -isystem "${PODS_ROOT}/Headers/Public/AliyunOSSiOS" -isystem "${PODS_ROOT}/Headers/Public/Bugly" -isystem "${PODS_ROOT}/Headers/Public/DACircularProgress" -isystem "${PODS_ROOT}/Headers/Public/DZNEmptyDataSet" -isystem "${PODS_ROOT}/Headers/Public/FDFullscreenPopGesture" -isystem "${PODS_ROOT}/Headers/Public/IQKeyboardManager" -isystem "${PODS_ROOT}/Headers/Public/JCore" -isystem "${PODS_ROOT}/Headers/Public/JPush" -isystem "${PODS_ROOT}/Headers/Public/JSONModel" -isystem "${PODS_ROOT}/Headers/Public/MBProgressHUD" -isystem "${PODS_ROOT}/Headers/Public/MJRefresh" -isystem "${PODS_ROOT}/Headers/Public/MMDrawerController" -isystem "${PODS_ROOT}/Headers/Public/MWPhotoBrowser" -isystem "${PODS_ROOT}/Headers/Public/Masonry" -isystem "${PODS_ROOT}/Headers/Public/PNChart" -isystem "${PODS_ROOT}/Headers/Public/SDWebImage" -isystem "${PODS_ROOT}/Headers/Public/UICountingLabel" -isystem "${PODS_ROOT}/Headers/Public/UITableView+FDTemplateLayoutCell" -isystem "${PODS_ROOT}/Headers/Public/UMengAnalytics" -isystem "${PODS_ROOT}/Headers/Public/UMengUShare" -isystem "${PODS_ROOT}/Headers/Public/WYPopoverController" -isystem "${PODS_ROOT}/Headers/Public/WZLBadge" -isystem "${PODS_ROOT}/Headers/Public/YXAlertController" -isystem "${PODS_ROOT}/Headers/Public/iCarousel"
OTHER_LDFLAGS = $(inherited) -ObjC -l"AFNetworking" -l"AliyunOSSiOS" -l"DACircularProgress" -l"DZNEmptyDataSet" -l"FDFullscreenPopGesture" -l"IQKeyboardManager" -l"JSONModel" -l"MBProgressHUD" -l"MJRefresh" -l"MMDrawerController" -l"MWPhotoBrowser" -l"Masonry" -l"PNChart" -l"SDWebImage" -l"SocialSina" -l"SocialWeChat" -l"UICountingLabel" -l"UITableView+FDTemplateLayoutCell" -l"UMSocialLog" -l"WYPopoverController" -l"WZLBadge" -l"YXAlertController" -l"c++" -l"iCarousel" -l"jcore-ios-1.1.1" -l"jpush-ios-3.0.2" -l"resolv" -l"sqlite3" -l"z" -framework "AssetsLibrary" -framework "Bugly" -framework "CFNetwork" -framework "CoreFoundation" -framework "CoreGraphics" -framework "CoreTelephony" -framework "Foundation" -framework "ImageIO" -framework "MediaPlayer" -framework "MobileCoreServices" -framework "QuartzCore" -framework "Security" -framework "SystemConfiguration" -framework "UIKit" -framework "UMMobClick" -framework "UMSocialCore" -framework "UMSocialNetwork" -weak_framework "Photos" -weak_framework "UserNotifications"
OTHER_LDFLAGS = $(inherited) -ObjC -l"AFNetworking" -l"AliyunOSSiOS" -l"DACircularProgress" -l"DZNEmptyDataSet" -l"FDFullscreenPopGesture" -l"IQKeyboardManager" -l"JSONModel" -l"MBProgressHUD" -l"MJRefresh" -l"MMDrawerController" -l"MWPhotoBrowser" -l"Masonry" -l"PNChart" -l"SDWebImage" -l"SocialSina" -l"SocialWeChat" -l"UICountingLabel" -l"UITableView+FDTemplateLayoutCell" -l"UMSocialLog" -l"WYPopoverController" -l"WZLBadge" -l"YXAlertController" -l"c++" -l"iCarousel" -l"jcore-ios-1.1.5" -l"jpush-ios-3.0.6" -l"resolv" -l"sqlite3" -l"z" -framework "AssetsLibrary" -framework "Bugly" -framework "CFNetwork" -framework "CoreFoundation" -framework "CoreGraphics" -framework "CoreTelephony" -framework "Foundation" -framework "ImageIO" -framework "MediaPlayer" -framework "MobileCoreServices" -framework "QuartzCore" -framework "Security" -framework "SystemConfiguration" -framework "UIKit" -framework "UMMobClick" -framework "UMSocialCore" -framework "UMSocialNetwork" -weak_framework "Photos" -weak_framework "UserNotifications"
PODS_BUILD_DIR = $BUILD_DIR
PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
......
......@@ -3,7 +3,7 @@ GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/AliyunOSSiOS" "${PODS_ROOT}/Headers/Public/Bugly" "${PODS_ROOT}/Headers/Public/DACircularProgress" "${PODS_ROOT}/Headers/Public/DZNEmptyDataSet" "${PODS_ROOT}/Headers/Public/FDFullscreenPopGesture" "${PODS_ROOT}/Headers/Public/IQKeyboardManager" "${PODS_ROOT}/Headers/Public/JCore" "${PODS_ROOT}/Headers/Public/JPush" "${PODS_ROOT}/Headers/Public/JSONModel" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/MMDrawerController" "${PODS_ROOT}/Headers/Public/MWPhotoBrowser" "${PODS_ROOT}/Headers/Public/Masonry" "${PODS_ROOT}/Headers/Public/PNChart" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/UICountingLabel" "${PODS_ROOT}/Headers/Public/UITableView+FDTemplateLayoutCell" "${PODS_ROOT}/Headers/Public/UMengAnalytics" "${PODS_ROOT}/Headers/Public/UMengUShare" "${PODS_ROOT}/Headers/Public/WYPopoverController" "${PODS_ROOT}/Headers/Public/WZLBadge" "${PODS_ROOT}/Headers/Public/YXAlertController" "${PODS_ROOT}/Headers/Public/iCarousel"
LIBRARY_SEARCH_PATHS = $(inherited) "$(PODS_ROOT)/UMengAnalytics/**" "$PODS_CONFIGURATION_BUILD_DIR/AFNetworking" "$PODS_CONFIGURATION_BUILD_DIR/AliyunOSSiOS" "$PODS_CONFIGURATION_BUILD_DIR/DACircularProgress" "$PODS_CONFIGURATION_BUILD_DIR/DZNEmptyDataSet" "$PODS_CONFIGURATION_BUILD_DIR/FDFullscreenPopGesture" "$PODS_CONFIGURATION_BUILD_DIR/IQKeyboardManager" "$PODS_CONFIGURATION_BUILD_DIR/JSONModel" "$PODS_CONFIGURATION_BUILD_DIR/MBProgressHUD" "$PODS_CONFIGURATION_BUILD_DIR/MJRefresh" "$PODS_CONFIGURATION_BUILD_DIR/MMDrawerController" "$PODS_CONFIGURATION_BUILD_DIR/MWPhotoBrowser" "$PODS_CONFIGURATION_BUILD_DIR/Masonry" "$PODS_CONFIGURATION_BUILD_DIR/PNChart" "$PODS_CONFIGURATION_BUILD_DIR/SDWebImage" "$PODS_CONFIGURATION_BUILD_DIR/UICountingLabel" "$PODS_CONFIGURATION_BUILD_DIR/UITableView+FDTemplateLayoutCell" "$PODS_CONFIGURATION_BUILD_DIR/WYPopoverController" "$PODS_CONFIGURATION_BUILD_DIR/WZLBadge" "$PODS_CONFIGURATION_BUILD_DIR/YXAlertController" "$PODS_CONFIGURATION_BUILD_DIR/iCarousel" $(inherited) "${PODS_ROOT}/JCore" $(inherited) "${PODS_ROOT}/JPush" $(inherited) "${PODS_ROOT}/UMengUShare/UShareSDK/UMSocialSDKPlugin" $(inherited) "${PODS_ROOT}/UMengUShare/UShareSDK/SocialLibraries/Sina" $(inherited) "${PODS_ROOT}/UMengUShare/UShareSDK/SocialLibraries/WeChat"
OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/AFNetworking" -isystem "${PODS_ROOT}/Headers/Public/AliyunOSSiOS" -isystem "${PODS_ROOT}/Headers/Public/Bugly" -isystem "${PODS_ROOT}/Headers/Public/DACircularProgress" -isystem "${PODS_ROOT}/Headers/Public/DZNEmptyDataSet" -isystem "${PODS_ROOT}/Headers/Public/FDFullscreenPopGesture" -isystem "${PODS_ROOT}/Headers/Public/IQKeyboardManager" -isystem "${PODS_ROOT}/Headers/Public/JCore" -isystem "${PODS_ROOT}/Headers/Public/JPush" -isystem "${PODS_ROOT}/Headers/Public/JSONModel" -isystem "${PODS_ROOT}/Headers/Public/MBProgressHUD" -isystem "${PODS_ROOT}/Headers/Public/MJRefresh" -isystem "${PODS_ROOT}/Headers/Public/MMDrawerController" -isystem "${PODS_ROOT}/Headers/Public/MWPhotoBrowser" -isystem "${PODS_ROOT}/Headers/Public/Masonry" -isystem "${PODS_ROOT}/Headers/Public/PNChart" -isystem "${PODS_ROOT}/Headers/Public/SDWebImage" -isystem "${PODS_ROOT}/Headers/Public/UICountingLabel" -isystem "${PODS_ROOT}/Headers/Public/UITableView+FDTemplateLayoutCell" -isystem "${PODS_ROOT}/Headers/Public/UMengAnalytics" -isystem "${PODS_ROOT}/Headers/Public/UMengUShare" -isystem "${PODS_ROOT}/Headers/Public/WYPopoverController" -isystem "${PODS_ROOT}/Headers/Public/WZLBadge" -isystem "${PODS_ROOT}/Headers/Public/YXAlertController" -isystem "${PODS_ROOT}/Headers/Public/iCarousel"
OTHER_LDFLAGS = $(inherited) -ObjC -l"AFNetworking" -l"AliyunOSSiOS" -l"DACircularProgress" -l"DZNEmptyDataSet" -l"FDFullscreenPopGesture" -l"IQKeyboardManager" -l"JSONModel" -l"MBProgressHUD" -l"MJRefresh" -l"MMDrawerController" -l"MWPhotoBrowser" -l"Masonry" -l"PNChart" -l"SDWebImage" -l"SocialSina" -l"SocialWeChat" -l"UICountingLabel" -l"UITableView+FDTemplateLayoutCell" -l"UMSocialLog" -l"WYPopoverController" -l"WZLBadge" -l"YXAlertController" -l"c++" -l"iCarousel" -l"jcore-ios-1.1.1" -l"jpush-ios-3.0.2" -l"resolv" -l"sqlite3" -l"z" -framework "AssetsLibrary" -framework "Bugly" -framework "CFNetwork" -framework "CoreFoundation" -framework "CoreGraphics" -framework "CoreTelephony" -framework "Foundation" -framework "ImageIO" -framework "MediaPlayer" -framework "MobileCoreServices" -framework "QuartzCore" -framework "Security" -framework "SystemConfiguration" -framework "UIKit" -framework "UMMobClick" -framework "UMSocialCore" -framework "UMSocialNetwork" -weak_framework "Photos" -weak_framework "UserNotifications"
OTHER_LDFLAGS = $(inherited) -ObjC -l"AFNetworking" -l"AliyunOSSiOS" -l"DACircularProgress" -l"DZNEmptyDataSet" -l"FDFullscreenPopGesture" -l"IQKeyboardManager" -l"JSONModel" -l"MBProgressHUD" -l"MJRefresh" -l"MMDrawerController" -l"MWPhotoBrowser" -l"Masonry" -l"PNChart" -l"SDWebImage" -l"SocialSina" -l"SocialWeChat" -l"UICountingLabel" -l"UITableView+FDTemplateLayoutCell" -l"UMSocialLog" -l"WYPopoverController" -l"WZLBadge" -l"YXAlertController" -l"c++" -l"iCarousel" -l"jcore-ios-1.1.5" -l"jpush-ios-3.0.6" -l"resolv" -l"sqlite3" -l"z" -framework "AssetsLibrary" -framework "Bugly" -framework "CFNetwork" -framework "CoreFoundation" -framework "CoreGraphics" -framework "CoreTelephony" -framework "Foundation" -framework "ImageIO" -framework "MediaPlayer" -framework "MobileCoreServices" -framework "QuartzCore" -framework "Security" -framework "SystemConfiguration" -framework "UIKit" -framework "UMMobClick" -framework "UMSocialCore" -framework "UMSocialNetwork" -weak_framework "Photos" -weak_framework "UserNotifications"
PODS_BUILD_DIR = $BUILD_DIR
PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
......
//
// UMSBaeViewController.h
// UMSocialSDK
//
// Created by wyq.Cloudayc on 11/22/16.
// Copyright © 2016 UMeng. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface UMSBaeViewController : UIViewController
@property (nonatomic, strong) NSString *titleString;
- (CGFloat)viewOffsetY;
@end
......@@ -160,7 +160,8 @@
* @param platformType 平台类型 @see UMSocialPlatformType
*
* @return YES 代表安装,NO 代表未安装
* @note 在判断QQ空间的App的时候,QQApi判断会出问题
* @note 调用前请检查是否配置好平台相关白名单: http://dev.umeng.com/social/ios/quick-integration#1_3
* 在判断QQ空间的App的时候,QQApi判断会出问题
*/
-(BOOL) isInstall:(UMSocialPlatformType)platformType;
......
......@@ -96,12 +96,11 @@
*
*/
+ (UMShareImageObject *)shareObjectWithTitle:(NSString *)title
descr:(NSString *)descr
thumImage:(id)thumImage;
descr:(NSString *)descr
thumImage:(id)thumImage;
@end
@interface UMShareMusicObject : UMShareObject
/** 音乐网页的url地址
......@@ -129,8 +128,8 @@
*
*/
+ (UMShareMusicObject *)shareObjectWithTitle:(NSString *)title
descr:(NSString *)descr
thumImage:(id)thumImage;
descr:(NSString *)descr
thumImage:(id)thumImage;
@end
......@@ -394,4 +393,33 @@
*/
@property (nonatomic, retain) NSData *fileData;
@end
#pragma mark - UMMiniProgramObject
/*! @brief 多媒体消息中包含 分享微信小程序的数据对象
*
* @see UMShareObject
*/
@interface UMShareMiniProgramObject : UMShareObject
/**
低版本微信网页链接
*/
@property (nonatomic, strong) NSString *webpageUrl;
/**
小程序username
*/
@property (nonatomic, strong) NSString *userName;
/**
小程序页面的路径
*/
@property (nonatomic, strong) NSString *path;
@end
......@@ -75,6 +75,11 @@ extern NSString *const UMSPlatformNameAlipaySession;
*/
extern NSString *const UMSPlatformNameQQ;
/**
Tencent Tim
*/
extern NSString *const UMSPlatformNameTim;
/**
Facebook
*/
......@@ -334,6 +339,7 @@ typedef NS_ENUM(NSInteger,UMSocialPlatformType)
UMSocialPlatformType_DropBox = 32,//dropbox
UMSocialPlatformType_VKontakte = 33,//vkontakte
UMSocialPlatformType_FaceBookMessenger = 34,//FaceBookMessenger
UMSocialPlatformType_Tim = 35,// Tencent TIM
UMSocialPlatformType_Predefine_end = 999,
......
......@@ -17,6 +17,15 @@
@property (nonatomic, copy) NSDate *expiration;
@property (nonatomic, copy) NSString *accessToken;
@property (nonatomic, copy) NSString *unionId;
/**
usid 兼容U-Share 4.x/5.x 版本,与4/5版本数值相同
即,对应微信平台:openId,QQ平台openId,其他平台不变
*/
@property (nonatomic, copy) NSString *usid;
@property (nonatomic, assign) UMSocialPlatformType platformType;
/**
* 第三方原始数据
......
//
// UMSocialSOAuthViewController.h
// UMSocialSDK
//
// Created by wangfei on 16/8/15.
// Copyright © 2016年 dongjianxiong. All rights reserved.
//
#import <UIKit/UIKit.h>
#import "UMSBaeViewController.h"
#import "UMSocialPlatformConfig.h"
@interface UMSocialSOAuthViewController : UMSBaeViewController<UIWebViewDelegate,UIAlertViewDelegate>
@property (nonatomic,strong) UIWebView *webView;
@property(nonatomic,assign) UMSocialPlatformType platformType;
@property (nonatomic, copy) UMSocialRequestCompletionHandler authCompletionBlock;
@property (nonatomic,strong) NSString* waitUrl;
@end
//
// UMSocialShareEditViewController.h
// UMSocialSDK
//
// Created by wangfei on 16/8/16.
// Copyright © 2016年 dongjianxiong. All rights reserved.
//
#import <UIKit/UIKit.h>
#import "UMSocialPlatformConfig.h"
#import "UMSBaeViewController.h"
@class UMSocialMessageObject;
@interface UMSocialShareEditViewController : UMSBaeViewController
@property (nonatomic,strong) UIImageView* editBar;
@property (nonatomic,strong) UILabel* numLabel;
@property (nonatomic,strong) UIImageView* imageView;
@property (nonatomic,strong) UIButton* delBtn;
@property (nonatomic,strong) UITextView* editView;
@property (nonatomic,strong) UIView* editViewBack;
@property (nonatomic,strong) UILabel* titleLabel;
@property (nonatomic,strong) UILabel* desLabel;
@property (nonatomic,strong) UMSocialMessageObject *shareContent;
@property (nonatomic, copy) UMSocialRequestCompletionHandler shareCompletionBlock;
@property (nonatomic,strong) NSString* usid;
@property (nonatomic,assign) UMSocialPlatformType platformType;
@end
......@@ -23,11 +23,12 @@ Three animation types are supported:
- WBadgeAnimTypeBounce
Here are examples for WZLBadge:
Here are examples for WZLBadge(just show static picture without gif here):
![](https://ww2.sinaimg.cn/large/006tKfTcgy1fevi5smct4j30yi1pcn52.jpg)
![](http://media.xtwind.com/images/2016/03/14/09a28a239eba55b920b804b7c356f2b8.gif)
![](http://media.xtwind.com/images/2016/03/14/d1db854e8fa291c0356f76727c6c6506.gif)
![](https://ww3.sinaimg.cn/large/006tKfTcgy1fevi5x1h2cj31kw0w0tdc.jpg)
----------
......@@ -137,6 +138,13 @@ Feel free to open an issue or pull request, if you need help or there is a bug.
----------
CHANGE LOG
--------------------
v1.2.6 2017.4.20
Bugs were fixed.
Enable setting badge properties before bage initialization.
v.1.2.5 201.7.31
fix bug 'when showing TabbarItem bage, badge is covered by tabbarItem icon'
v1.2.3 2016.2.15
1.Enable resume badge when badge has been cleard(removed)
......
......@@ -12,24 +12,6 @@
@interface UIBarButtonItem (WZLBadge)<WZLBadgeProtocol>
@property (nonatomic, strong) UILabel *badge; /* badge entity, which is adviced not to set manually */
@property (nonatomic, strong) UIColor *badgeBgColor; /* red color by default if not set */
@property (nonatomic, strong) UIColor *badgeTextColor; /* white color by default if not set */
@property (nonatomic, assign) CGRect badgeFrame; /* we have optimized the badge frame and center.
This property is adviced not to set manually */
@property (nonatomic, assign) CGPoint badgeCenterOffset;/* offset from right-top corner. {0,0} by default */
/* For x, negative number means left offset
For y, negative number means bottom offset
*/
@property (nonatomic, assign) WBadgeAnimType aniType; /* NOTE that this is not animation type of badge's
appearing, nor hidding*/
@property (nonatomic, assign) NSInteger badgeMaximumBadgeNumber; /*for WBadgeStyleNumber style badge,
if badge value is above badgeMaximumBadgeNumber,
"badgeMaximumBadgeNumber+" will be printed. */
/**
* show badge with red dot style and WBadgeAnimTypeNone by default.
*/
......
......@@ -12,24 +12,6 @@
@interface UITabBarItem (WZLBadge)<WZLBadgeProtocol>
@property (nonatomic, strong) UILabel *badge; /* badge entity, which is adviced not to set manually */
@property (nonatomic, strong) UIColor *badgeBgColor; /* red color by default if not set */
@property (nonatomic, strong) UIColor *badgeTextColor; /* white color by default if not set */
@property (nonatomic, assign) CGRect badgeFrame; /* we have optimized the badge frame and center.
This property is adviced not to set manually */
@property (nonatomic, assign) CGPoint badgeCenterOffset;/* offset from right-top corner. {0,0} by default */
/* For x, negative number means left offset
For y, negative number means bottom offset
*/
@property (nonatomic, assign) WBadgeAnimType aniType; /* NOTE that this is not animation type of badge's
appearing, nor hidding*/
@property (nonatomic, assign) NSInteger badgeMaximumBadgeNumber; /*for WBadgeStyleNumber style badge,
if badge value is above badgeMaximumBadgeNumber,
"badgeMaximumBadgeNumber+" will be printed. */
/**
* show badge with red dot style and WBadgeAnimTypeNone by default.
*/
......
......@@ -37,18 +37,6 @@
[kActualView showBadgeWithStyle:style value:value animationType:aniType];
}
- (UIView *)find:(UIView *)view firstSubviewWithClass:(Class)cls
{
__block UIView *targetView = nil;
[view.subviews enumerateObjectsUsingBlock:^(UIView *subview, NSUInteger idx, BOOL * _Nonnull stop) {
if ([subview isKindOfClass:cls]) {
targetView = subview;
*stop = YES;
}
}];
return targetView;
}
/**
* clear badge
*/
......@@ -85,6 +73,18 @@
return actualSuperView;
}
- (UIView *)find:(UIView *)view firstSubviewWithClass:(Class)cls
{
__block UIView *targetView = nil;
[view.subviews enumerateObjectsUsingBlock:^(UIView *subview, NSUInteger idx, BOOL * _Nonnull stop) {
if ([subview isKindOfClass:cls]) {
targetView = subview;
*stop = YES;
}
}];
return targetView;
}
#pragma mark -- setter/getter
- (UILabel *)badge
{
......
......@@ -76,7 +76,6 @@
animation.removedOnCompletion=NO;
animation.fillMode=kCAFillModeForwards;
animation.repeatCount= repeatCount;
animation.delegate= self;
return animation;
}
......
......@@ -54,23 +54,23 @@ typedef NS_ENUM(NSUInteger, WBadgeAnimType)
@required
@property (nonatomic, strong) UILabel *badge; /* badge entity, which is adviced not to set manually */
@property (nonatomic, strong) UIFont *badgeFont; /* [UIFont boldSystemFontOfSize:9] by default if not set */
@property (nonatomic, strong) UIColor *badgeBgColor; /* red color by default if not set */
@property (nonatomic, strong) UIColor *badgeTextColor; /* white color by default if not set */
@property (nonatomic, assign) CGRect badgeFrame; /* we have optimized the badge frame and center.
This property is adviced not to set manually */
@property (nonatomic, assign) CGPoint badgeCenterOffset;/* offset from right-top corner. {0,0} by default */
/* For x, negative number means left offset
For y, negative number means bottom offset */
@property (nonatomic, assign) WBadgeAnimType aniType; /* NOTE that this is not animation type of badge's
appearing, nor hidding*/
@property (nonatomic, assign) NSInteger badgeMaximumBadgeNumber; /*for WBadgeStyleNumber style badge,
if badge value is above badgeMaximumBadgeNumber,
"badgeMaximumBadgeNumber+" will be printed. */
@property (nonatomic, strong) UILabel *badge; /* badge entity, which is adviced not to set manually */
@property (nonatomic, strong) UIFont *badgeFont; /* [UIFont boldSystemFontOfSize:9] by default if not set */
@property (nonatomic, strong) UIColor *badgeBgColor; /* red color by default if not set */
@property (nonatomic, strong) UIColor *badgeTextColor; /* white color by default if not set */
@property (nonatomic, assign) CGRect badgeFrame; /* we have optimized the badge frame and center.
This property is adviced not to set manually */
@property (nonatomic, assign) CGPoint badgeCenterOffset; /* offset from right-top corner. {0,0} by default */
/* For x, negative number means left offset
For y, negative number means bottom offset */
@property (nonatomic, assign) WBadgeAnimType aniType; /* NOTE that this is not animation type of badge's
appearing, nor hidding*/
@property (nonatomic, assign) NSInteger badgeMaximumBadgeNumber; /*for WBadgeStyleNumber style badge,
if badge value is above badgeMaximumBadgeNumber,
"badgeMaximumBadgeNumber+" will be printed. */
/**
* show badge with red dot style and WBadgeAnimTypeNone by default.
......
......@@ -13,24 +13,6 @@
@interface UIView (WZLBadge)<WZLBadgeProtocol>
@property (nonatomic, strong) UILabel *badge; /* badge entity, which is adviced not to set manually */
@property (nonatomic, strong) UIFont *badgeFont; /* [UIFont boldSystemFontOfSize:9] by default if not set */
@property (nonatomic, strong) UIColor *badgeBgColor; /* red color by default if not set */
@property (nonatomic, strong) UIColor *badgeTextColor; /* white color by default if not set */
@property (nonatomic, assign) CGRect badgeFrame; /* we have optimized the badge frame and center.
This property is adviced not to set manually */
@property (nonatomic, assign) CGPoint badgeCenterOffset;/* offset from right-top corner. {0,0} by default */
/* For x, negative number means left offset
For y, negative number means bottom offset*/
@property (nonatomic, assign) WBadgeAnimType aniType; /* NOTE that this is not animation type of badge's
appearing, nor hidding*/
@property (nonatomic, assign) NSInteger badgeMaximumBadgeNumber; /*for WBadgeStyleNumber style badge,
if badge value is above badgeMaximumBadgeNumber,
"badgeMaximumBadgeNumber+" will be printed. */
/**
* show badge with red dot style and WBadgeAnimTypeNone by default.
......
......@@ -252,9 +252,10 @@
- (void)setBadgeFont:(UIFont *)badgeFont
{
objc_setAssociatedObject(self, &badgeFontKey, badgeFont, OBJC_ASSOCIATION_RETAIN);
if (self.badge) {
self.badge.font = badgeFont;
}
if (!self.badge) {
[self badgeInit];
}
self.badge.font = badgeFont;
}
- (UIColor *)badgeBgColor
......@@ -265,9 +266,10 @@
- (void)setBadgeBgColor:(UIColor *)badgeBgColor
{
objc_setAssociatedObject(self, &badgeBgColorKey, badgeBgColor, OBJC_ASSOCIATION_RETAIN);
if (self.badge) {
self.badge.backgroundColor = badgeBgColor;
if (!self.badge) {
[self badgeInit];
}
self.badge.backgroundColor = badgeBgColor;
}
- (UIColor *)badgeTextColor
......@@ -278,9 +280,10 @@
- (void)setBadgeTextColor:(UIColor *)badgeTextColor
{
objc_setAssociatedObject(self, &badgeTextColorKey, badgeTextColor, OBJC_ASSOCIATION_RETAIN);
if (self.badge) {
self.badge.textColor = badgeTextColor;
if (!self.badge) {
[self badgeInit];
}
self.badge.textColor = badgeTextColor;
}
- (WBadgeAnimType)aniType
......@@ -298,10 +301,11 @@
{
NSNumber *numObj = @(aniType);
objc_setAssociatedObject(self, &badgeAniTypeKey, numObj, OBJC_ASSOCIATION_RETAIN);
if (self.badge) {
[self removeAnimation];
[self beginAnimation];
if (!self.badge) {
[self badgeInit];
}
[self removeAnimation];
[self beginAnimation];
}
- (CGRect)badgeFrame
......@@ -322,9 +326,10 @@
NSDictionary *frameInfo = @{@"x" : @(badgeFrame.origin.x), @"y" : @(badgeFrame.origin.y),
@"width" : @(badgeFrame.size.width), @"height" : @(badgeFrame.size.height)};
objc_setAssociatedObject(self, &badgeFrameKey, frameInfo, OBJC_ASSOCIATION_RETAIN);
if (self.badge) {
self.badge.frame = badgeFrame;
if (!self.badge) {
[self badgeInit];
}
self.badge.frame = badgeFrame;
}
- (CGPoint)badgeCenterOffset
......@@ -342,9 +347,10 @@
{
NSDictionary *cenerInfo = @{@"x" : @(badgeCenterOff.x), @"y" : @(badgeCenterOff.y)};
objc_setAssociatedObject(self, &badgeCenterOffsetKey, cenerInfo, OBJC_ASSOCIATION_RETAIN);
if (self.badge) {
self.badge.center = CGPointMake(CGRectGetWidth(self.frame) + 2 + badgeCenterOff.x, badgeCenterOff.y);
if (!self.badge) {
[self badgeInit];
}
self.badge.center = CGPointMake(CGRectGetWidth(self.frame) + 2 + badgeCenterOff.x, badgeCenterOff.y);
}
- (NSInteger)badgeMaximumBadgeNumber {
......@@ -360,6 +366,9 @@
- (void)setBadgeMaximumBadgeNumber:(NSInteger)badgeMaximumBadgeNumber {
NSNumber *numObj = @(badgeMaximumBadgeNumber);
objc_setAssociatedObject(self, &badgeMaximumBadgeNumberKey, numObj, OBJC_ASSOCIATION_RETAIN);
if (!self.badge) {
[self badgeInit];
}
}
@end
......@@ -44,7 +44,7 @@ platform :ios do
workspace: "Lighting.xcworkspace",
scheme: "Lighting",
clean: true,
output_directory: "/Users/caoyunxiao/Desktop/iPA”,
output_directory: File.expand_path('..', __FILE__) + "/iPA",
export_method: "enterprise",
output_name: "Lighting.ipa"
)
......
......@@ -5,27 +5,27 @@
<testcase classname="fastlane.lanes" name="0: Verifying required fastlane version" time="0.002849">
<testcase classname="fastlane.lanes" name="0: Verifying required fastlane version" time="0.002589">
</testcase>
<testcase classname="fastlane.lanes" name="1: default_platform" time="0.003048">
<testcase classname="fastlane.lanes" name="1: default_platform" time="0.00174">
</testcase>
<testcase classname="fastlane.lanes" name="2: cocoapods" time="6.489391">
<testcase classname="fastlane.lanes" name="2: cocoapods" time="4.350548">
</testcase>
<testcase classname="fastlane.lanes" name="3: gym" time="123.738273">
<testcase classname="fastlane.lanes" name="3: gym" time="99.806116">
</testcase>
<testcase classname="fastlane.lanes" name="4: pgyer" time="84.944522">
<testcase classname="fastlane.lanes" name="4: pgyer" time="58.470612">
</testcase>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment