Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DiDi
DoraemonKit
提交
f71bdeb7
D
DoraemonKit
项目概览
DiDi
/
DoraemonKit
12 个月 前同步成功
通知
166
Star
19623
Fork
3062
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
DoraemonKit
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
f71bdeb7
编写于
6月 20, 2019
作者:
Y
yixiang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
支持SDWebImage自动检查大图,并在图片上做标记
上级
b241246d
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
130 addition
and
16 deletion
+130
-16
iOS/DoraemonKit/Src/Core/Plugin/LargeImageDetection/Function/UIImageView+DoraemonSDImage.h
...argeImageDetection/Function/UIImageView+DoraemonSDImage.h
+17
-0
iOS/DoraemonKit/Src/Core/Plugin/LargeImageDetection/Function/UIImageView+DoraemonSDImage.m
...argeImageDetection/Function/UIImageView+DoraemonSDImage.m
+95
-0
iOS/DoraemonKitDemo/DoraemonKitDemo/AppDelegate.m
iOS/DoraemonKitDemo/DoraemonKitDemo/AppDelegate.m
+1
-1
iOS/DoraemonKitDemo/DoraemonKitDemo/DemoVC/Net/Image/DoraemonDemoImageShowViewController.m
...mo/DemoVC/Net/Image/DoraemonDemoImageShowViewController.m
+2
-1
iOS/DoraemonKitDemo/DoraemonKitDemo/DemoVC/Net/Image/DoraemonDemoImageViewController.m
...itDemo/DemoVC/Net/Image/DoraemonDemoImageViewController.m
+7
-7
iOS/DoraemonKitDemo/Podfile
iOS/DoraemonKitDemo/Podfile
+2
-1
iOS/DoraemonKitDemo/Podfile.lock
iOS/DoraemonKitDemo/Podfile.lock
+6
-6
未找到文件。
iOS/DoraemonKit/Src/Core/Plugin/LargeImageDetection/Function/UIImageView+DoraemonSDImage.h
0 → 100644
浏览文件 @
f71bdeb7
//
// UIImageView+DoraemonSDImage.h
// AFNetworking
//
// Created by yixiang on 2019/6/19.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@interface
UIImageView
(
DoraemonSDImage
)
@end
NS_ASSUME_NONNULL_END
iOS/DoraemonKit/Src/Core/Plugin/LargeImageDetection/Function/UIImageView+DoraemonSDImage.m
0 → 100644
浏览文件 @
f71bdeb7
//
// UIImageView+DoraemonSDImage.m
// AFNetworking
//
// Created by yixiang on 2019/6/19.
//
#if __has_include(<SDWebImage/UIImageView+WebCache.h>)
#import "UIImageView+DoraemonSDImage.h"
//#import <SDWebImage/UIImageView+WebCache.h>
#import "NSObject+Doraemon.h"
#import "DoraemonLargeImageDetectionManager.h"
#import <objc/runtime.h>
@implementation
UIImageView
(
DoraemonSDImage
)
+
(
void
)
load
{
Method
originAddObserverMethod
=
class_getInstanceMethod
(
self
,
@selector
(
sd_setImageWithURL
:
placeholderImage
:
options
:
context
:
progress
:
completed
:
));
if
(
originAddObserverMethod
)
{
// 兼容SDWebImage 最新版本 5.0.6
[
self
doraemon_swizzleInstanceMethodWithOriginSel
:
@selector
(
sd_setImageWithURL
:
placeholderImage
:
options
:
context
:
progress
:
completed
:
)
swizzledSel:
@selector
(
doraemon_sd_setImageWithURL
:
placeholderImage
:
options
:
context
:
progress
:
completed
:
)];
}
else
{
// 兼容SDWebImage 我们使用的版本 3.7.6
[
self
doraemon_swizzleInstanceMethodWithOriginSel
:
@selector
(
sd_setImageWithURL
:
placeholderImage
:
options
:
progress
:
completed
:
)
swizzledSel
:
@selector
(
doraemon_sd_setImageWithURL
:
placeholderImage
:
options
:
progress
:
completed
:
)];
}
//估计以后还会兼容其他版本啊。哭。
}
-
(
void
)
doraemon_sd_setImageWithURL
:(
nullable
NSURL
*
)
url
placeholderImage
:(
nullable
UIImage
*
)
placeholder
options
:(
NSUInteger
)
options
context
:(
id
)
context
progress
:(
id
)
progressBlock
completed
:(
void
(
^
)(
UIImage
*
_Nullable
image
,
NSError
*
_Nullable
error
,
NSInteger
cacheType
,
NSURL
*
_Nullable
imageURL
))
completedBlock
{
__weak
typeof
(
self
)
weafSelf
=
self
;
if
([
DoraemonLargeImageDetectionManager
shareInstance
].
detecting
)
{
id
replaceCompletedBlock
=
^
(
UIImage
*
_Nullable
image
,
NSError
*
_Nullable
error
,
NSInteger
cacheType
,
NSURL
*
_Nullable
imageURL
){
NSData
*
data
=
UIImageJPEGRepresentation
(
image
,
1
.
0
);
if
(
!
data
&&
data
.
length
<=
0
)
{
data
=
UIImagePNGRepresentation
(
image
);
}
NSString
*
drawText
=
[
NSString
stringWithFormat
:
@"url : %@
\n
size : %fKB"
,[
url
absoluteString
],
data
.
length
/
1024
.];
weafSelf
.
image
=
[
self
drawText
:
drawText
inImage
:
weafSelf
.
image
];
if
(
completedBlock
)
{
completedBlock
(
weafSelf
.
image
,
error
,
cacheType
,
imageURL
);
}
};
[
self
doraemon_sd_setImageWithURL
:
url
placeholderImage
:
placeholder
options
:
options
context
:
context
progress
:
progressBlock
completed
:
replaceCompletedBlock
];
}
else
{
[
self
doraemon_sd_setImageWithURL
:
url
placeholderImage
:
placeholder
options
:
options
context
:
context
progress
:
progressBlock
completed
:
completedBlock
];
}
}
-
(
void
)
doraemon_sd_setImageWithURL
:(
NSURL
*
)
url
placeholderImage
:(
UIImage
*
)
placeholder
options
:(
NSUInteger
)
options
progress
:(
id
)
progressBlock
completed
:(
void
(
^
)(
UIImage
*
image
,
NSError
*
error
,
NSInteger
cacheType
,
NSURL
*
imageURL
))
completedBlock
{
__weak
typeof
(
self
)
weafSelf
=
self
;
if
([
DoraemonLargeImageDetectionManager
shareInstance
].
detecting
){
id
replaceCompletedBlock
=
^
(
UIImage
*
image
,
NSError
*
error
,
NSInteger
cacheType
,
NSURL
*
imageURL
)
{
NSData
*
data
=
UIImageJPEGRepresentation
(
image
,
1
.
0
);
if
(
!
data
&&
data
.
length
<=
0
)
{
data
=
UIImagePNGRepresentation
(
image
);
}
NSString
*
drawText
=
[
NSString
stringWithFormat
:
@"url : %@
\n
size : %fKB"
,[
url
absoluteString
],
data
.
length
/
1024
.];
weafSelf
.
image
=
[
self
drawText
:
drawText
inImage
:
weafSelf
.
image
];
if
(
completedBlock
)
{
completedBlock
(
weafSelf
.
image
,
error
,
cacheType
,
imageURL
);
}
};
[
self
doraemon_sd_setImageWithURL
:
url
placeholderImage
:
placeholder
options
:
options
progress
:
progressBlock
completed
:
replaceCompletedBlock
];
}
else
{
[
self
doraemon_sd_setImageWithURL
:
url
placeholderImage
:
placeholder
options
:
options
progress
:
progressBlock
completed
:
completedBlock
];
}
}
-
(
UIImage
*
)
drawText
:(
NSString
*
)
text
inImage
:(
UIImage
*
)
image
{
UIFont
*
font
=
[
UIFont
boldSystemFontOfSize
:
12
*
(
image
.
size
.
height
/
230
)];
UIGraphicsBeginImageContextWithOptions
(
image
.
size
,
NO
,
[
UIScreen
mainScreen
].
scale
);
[
image
drawInRect
:
CGRectMake
(
0
,
0
,
image
.
size
.
width
,
image
.
size
.
height
)];
CGRect
rect
=
CGRectMake
(
0
,
0
,
image
.
size
.
width
,
image
.
size
.
height
);
[[
UIColor
redColor
]
set
];
[
text
drawInRect
:
CGRectIntegral
(
rect
)
withFont
:
font
];
UIImage
*
newImage
=
UIGraphicsGetImageFromCurrentImageContext
();
UIGraphicsEndImageContext
();
return
newImage
;
}
@end
#endif
iOS/DoraemonKitDemo/DoraemonKitDemo/AppDelegate.m
浏览文件 @
f71bdeb7
...
...
@@ -33,7 +33,7 @@
}];
[[
DoraemonManager
shareInstance
]
addStartPlugin
:
@"StartPlugin"
];
[
DoraemonManager
shareInstance
].
bigImageDetectionSize
=
10
0
*
1024
;
//大图检测只检测100K以上的
[
DoraemonManager
shareInstance
].
bigImageDetectionSize
=
10
*
1024
;
//大图检测只检测100K以上的
[[
DoraemonManager
shareInstance
]
install
];
[[
DoraemonManager
shareInstance
]
addANRBlock
:
^
(
NSDictionary
*
anrDic
)
{
...
...
iOS/DoraemonKitDemo/DoraemonKitDemo/DemoVC/Net/Image/DoraemonDemoImageShowViewController.m
浏览文件 @
f71bdeb7
...
...
@@ -8,6 +8,7 @@
#import "DoraemonDemoImageShowViewController.h"
#import "DoraemonDefine.h"
#import <SDWebImage/UIImageView+WebCache.h>
@interface
DoraemonDemoImageShowViewController
()
...
...
@@ -20,7 +21,7 @@
-
(
void
)
viewDidLoad
{
[
super
viewDidLoad
];
[
self
setOriginalImage
:
_image
];
[
self
.
imageView
sd_setImageWithURL
:[
NSURL
URLWithString
:
@"http://05imgmini.eastday.com/mobile/20190617/2019061519_87d0d825dc3440d4ab2a3c4ca33380f1_8193_mwpm_03201609.jpg"
]];
}
-
(
void
)
setOriginalImage
:(
UIImage
*
)
originalImage
{
...
...
iOS/DoraemonKitDemo/DoraemonKitDemo/DemoVC/Net/Image/DoraemonDemoImageViewController.m
浏览文件 @
f71bdeb7
...
...
@@ -9,7 +9,7 @@
#import "DoraemonDemoImageViewController.h"
#import "DoraemonDefine.h"
#import "DoraemonDemoImageShowViewController.h"
#import <SDWebImage/SDWebImag
e.h>
//#import <SDWebImage/SDImageCach
e.h>
#import "DoraemonUIWebViewViewController.h"
#import "DoraemonWKWebViewViewController.h"
...
...
@@ -65,12 +65,12 @@
-
(
void
)
sdWebImage
{
NSURL
*
imageUrl
=
[
NSURL
URLWithString
:
self
.
picUrl
];
[[
SDWebImageManager
sharedManager
]
loadImageWithURL
:
imageUrl
options
:
SDWebImageRetryFailed
progress
:^
(
NSInteger
receivedSize
,
NSInteger
expectedSize
,
NSURL
*
_Nullable
targetURL
)
{
//
}
completed
:^
(
UIImage
*
_Nullable
image
,
NSData
*
_Nullable
data
,
NSError
*
_Nullable
error
,
SDImageCacheType
cacheType
,
BOOL
finished
,
NSURL
*
_Nullable
imageURL
)
{
//
[
self
showImage
:
image
];
}];
//
[[SDWebImageManager sharedManager] loadImageWithURL:imageUrl options:SDWebImageRetryFailed progress:^(NSInteger receivedSize, NSInteger expectedSize, NSURL * _Nullable targetURL) {
//
//
//
} completed:^(UIImage * _Nullable image, NSData * _Nullable data, NSError * _Nullable error, SDImageCacheType cacheType, BOOL finished, NSURL * _Nullable imageURL) {
//
//
//
[self showImage:image];
//
}];
}
-
(
void
)
uiWebView
{
...
...
iOS/DoraemonKitDemo/Podfile
浏览文件 @
f71bdeb7
...
...
@@ -14,5 +14,6 @@ end
target
:'DoraemonKitDemo'
do
pod
'DoraemonKit'
,
:subspecs
=>
[
'Core'
,
'WithLogger'
,
'WithGPS'
,
'WithLoad'
,
'WithWeex'
],
:path
=>
'../../'
pod
'AFNetworking'
,
'2.6.3'
pod
'SDWebImage'
pod
'SDWebImage'
,
'3.7.6'
##pod 'SDWebImage', '5.0.6'
end
iOS/DoraemonKitDemo/Podfile.lock
浏览文件 @
f71bdeb7
...
...
@@ -59,9 +59,9 @@ PODS:
- fishhook (0.2)
- PNChart (0.8.9):
- UICountingLabel (~> 1.2.0)
- SDWebImage (
5.0
.6):
- SDWebImage/Core (=
5.0
.6)
- SDWebImage/Core (
5.0
.6)
- SDWebImage (
3.7
.6):
- SDWebImage/Core (=
3.7
.6)
- SDWebImage/Core (
3.7
.6)
- SocketRocket (0.5.1)
- UICountingLabel (1.2.0)
- "UITextView+Placeholder (1.2.1)"
...
...
@@ -77,7 +77,7 @@ DEPENDENCIES:
- DoraemonKit/WithLoad (from `../../`)
- DoraemonKit/WithLogger (from `../../`)
- DoraemonKit/WithWeex (from `../../`)
- SDWebImage
- SDWebImage
(= 3.7.6)
SPEC REPOS:
https://github.com/cocoapods/specs.git:
...
...
@@ -104,13 +104,13 @@ SPEC CHECKSUMS:
DoraemonKit: 800be28118fb88d57eadbded1222746d7c55cb8a
fishhook: ea19933abfe8f2f52c55fd8b6e2718467d3ebc89
PNChart: 84774d225c2126ded6c93d4dbe6ae98c3a73c2d2
SDWebImage:
920f1a2ff1ca8296ad34f6e0510a1ef1d70ac965
SDWebImage:
c325cf02c30337336b95beff20a13df489ec0ec9
SocketRocket: d57c7159b83c3c6655745cd15302aa24b6bae531
UICountingLabel: 1db4e7d023e1762171eb226d6dff47a7a84f27aa
"UITextView+Placeholder": 0c3efd97f37ea64bde7f34cc6e90fe02e87b3909
WeexSDK: 5bd35be9c035c67c84d1ba15712360bb0d0ba6b5
WXDevtool: 833dd3e835df1f5f278fc8865c865d48196bfdab
PODFILE CHECKSUM:
23f7937440f2143e626b191777e4b7a5f6064ed9
PODFILE CHECKSUM:
e9faca58dae8c6c0cc8affa40011ac98b192bf6a
COCOAPODS: 1.6.2
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录