Skip to content

Commit 40463a0

Browse files
committed
CCAutoTag push : 使用传入位置,解决遮挡关键区域,减少频繁移动
1 parent b44d694 commit 40463a0

File tree

7 files changed

+48
-6
lines changed

7 files changed

+48
-6
lines changed

Doc/iOS_cn_guide.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,14 +28,17 @@ MockGPS存在一些兼容性问题(绝大部分情况是好的,问题详见[
2828
### 2、使用DoraemonKit内置工具集的接入方式
2929
在App启动的时候添加一下代码
3030

31-
```
31+
```objective-c
3232
#ifdef DEBUG
3333
#import <DoraemonKit/DoraemonManager.h>
3434
#endif
3535

3636
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
3737
#ifdef DEBUG
38+
//默认
3839
[[DoraemonManager shareInstance] install];
40+
// 或者使用传入位置,解决遮挡关键区域,减少频繁移动
41+
//[[DoraemonManager shareInstance] installWithStartingPosition:CGPointMake(66, 66)];
3942
#endif
4043
}
4144
```
@@ -57,7 +60,7 @@ MockGPS存在一些兼容性问题(绝大部分情况是好的,问题详见[
5760
}
5861
@end
5962
```
60-
63+
6164

6265
第二步:在Doraemon初始化的地方添加第一步中添加的“环境切换”插件
6366

iOS/DoraemonKit/Src/Core/Define/DoraemonDefine.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@
2020
#define DoraemonScreenWidth [UIScreen mainScreen].bounds.size.width
2121
#define DoraemonScreenHeight [UIScreen mainScreen].bounds.size.height
2222

23+
//Doraemon默认位置
24+
#define DoraemonStartingPosition CGPointMake(0, DoraemonScreenHeight/3.0)
25+
2326
//根据750*1334分辨率计算size
2427
#define kDoraemonSizeFrom750(x) ((x)*DoraemonScreenWidth/750)
2528
// 如果横屏显示

iOS/DoraemonKit/Src/Core/Entry/DoraemonEntryView.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,7 @@
1010

1111
@interface DoraemonEntryView : UIWindow
1212

13+
// 定制位置
14+
@property (nonatomic) CGPoint startingPosition;
15+
1316
@end

iOS/DoraemonKit/Src/Core/Entry/DoraemonEntryView.m

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,18 @@ @implementation DoraemonEntryView
2626

2727
- (instancetype)init{
2828
_kEntryViewSize = 58;
29-
self = [super initWithFrame:CGRectMake(0, DoraemonScreenHeight/3, _kEntryViewSize, _kEntryViewSize)];
29+
CGFloat x = self.startingPosition.x;
30+
CGFloat y = self.startingPosition.y;
31+
CGPoint defaultPosition = DoraemonStartingPosition;
32+
if (x < 0 || x > (DoraemonScreenWidth - _kEntryViewSize)) {
33+
x = defaultPosition.x;
34+
}
35+
36+
if (y < 0 || y > (DoraemonScreenHeight - _kEntryViewSize)) {
37+
y = defaultPosition.y;
38+
}
39+
40+
self = [super initWithFrame:CGRectMake(x, y, _kEntryViewSize, _kEntryViewSize)];
3041
if (self) {
3142
self.backgroundColor = [UIColor clearColor];
3243
self.windowLevel = UIWindowLevelStatusBar + 100.f;

iOS/DoraemonKit/Src/Core/Manager/DoraemonManager.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,9 @@ typedef NS_ENUM(NSUInteger, DoraemonManagerPluginType) {
9090

9191
- (void)install;
9292

93+
// 定制起始位置 | 适用正好挡住关键位置
94+
- (void)installWithStartingPosition:(CGPoint) position;
95+
9396
- (void)installWithCustomBlock:(void(^)(void))customBlock;
9497

9598
@property (nonatomic,strong) NSMutableArray *dataArray;

iOS/DoraemonKit/Src/Core/Manager/DoraemonManager.m

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,9 @@ @interface DoraemonManager()
6565

6666
@property (nonatomic, assign) BOOL hasInstall;
6767

68+
// 定制位置
69+
@property (nonatomic) CGPoint startingPosition;
70+
6871
@end
6972

7073
@implementation DoraemonManager
@@ -79,6 +82,16 @@ + (nonnull DoraemonManager *)shareInstance{
7982
}
8083

8184
- (void)install{
85+
//启用默认位置
86+
CGPoint defaultPosition = DoraemonStartingPosition;
87+
// startingPosition = CGPointMake(0, DoraemonScreenHeight/3);
88+
// startingPosition = CGPointMake(0, 0 - 1);
89+
// startingPosition = CGPointMake(100, 100);
90+
[self installWithStartingPosition:defaultPosition];
91+
}
92+
93+
- (void)installWithStartingPosition:(CGPoint) position{
94+
_startingPosition = position;
8295
[self installWithCustomBlock:^{
8396
//什么也没发生
8497
}];
@@ -102,7 +115,7 @@ - (void)installWithCustomBlock:(void(^)(void))customBlock{
102115
[self initData];
103116
customBlock();
104117

105-
[self initEntry];
118+
[self initEntry:self.startingPosition];
106119

107120
//根据开关判断是否收集Crash日志
108121
if ([[DoraemonCacheManager sharedInstance] crashSwitch]) {
@@ -237,8 +250,13 @@ - (void)initData{
237250
/**
238251
初始化工具入口
239252
*/
240-
- (void)initEntry{
241-
_entryView = [[DoraemonEntryView alloc] init];
253+
- (void)initEntry:(CGPoint) startingPosition{
254+
// _entryView = [[DoraemonEntryView alloc] init];
255+
// _entryView = [[DoraemonEntryView alloc] init];
256+
_entryView = [DoraemonEntryView alloc];
257+
_entryView.startingPosition = startingPosition;
258+
_entryView = [_entryView init];
259+
242260
[_entryView makeKeyAndVisible];
243261
}
244262

iOS/DoraemonKitDemo/DoraemonKitDemo/DoKitAppDelegate.m

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(
3636
[DoraemonManager shareInstance].bigImageDetectionSize = 10 * 1024;//大图检测只检测10K以上的
3737
[DoraemonManager shareInstance].startClass = @"DoKitAppDelegate";
3838
[[DoraemonManager shareInstance] install];
39+
//[[DoraemonManager shareInstance] installWithStartingPosition:CGPointMake(66, 66)];
3940

4041
[[DoraemonManager shareInstance] addANRBlock:^(NSDictionary *anrDic) {
4142
NSLog(@"anrDic == %@",anrDic);

0 commit comments

Comments
 (0)