Skip to content

Commit d10f2a1

Browse files
committed
StartImagesManager
1 parent 30c8468 commit d10f2a1

7 files changed

Lines changed: 163 additions & 8 deletions

File tree

Coding_iOS.xcodeproj/project.pbxproj

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
4E07D3111A4D1484009EDDF2 /* EaseStartView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E07D3101A4D1484009EDDF2 /* EaseStartView.m */; };
1515
4E07D3151A4D3CA6009EDDF2 /* [email protected] in Resources */ = {isa = PBXBuildFile; fileRef = 4E07D3121A4D3CA6009EDDF2 /* [email protected] */; };
1616
4E07D3161A4D3CA6009EDDF2 /* [email protected] in Resources */ = {isa = PBXBuildFile; fileRef = 4E07D3131A4D3CA6009EDDF2 /* [email protected] */; };
17-
4E07D3171A4D3CA6009EDDF2 /* startImage@2x.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 4E07D3141A4D3CA6009EDDF2 /* startImage@2x.jpg */; };
17+
4E07D3171A4D3CA6009EDDF2 /* STARTIMAGE.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 4E07D3141A4D3CA6009EDDF2 /* STARTIMAGE.jpg */; };
1818
4E15C7D01A26D2F000FB8DAD /* FolderToMoveViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E15C7CF1A26D2F000FB8DAD /* FolderToMoveViewController.m */; };
1919
4E15C7D61A271A6300FB8DAD /* EaseToolBar.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E15C7D51A271A6300FB8DAD /* EaseToolBar.m */; };
2020
4E2906A21A403B7D008A5B97 /* FileDownloadView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E2906A11A403B7D008A5B97 /* FileDownloadView.m */; };
@@ -55,6 +55,7 @@
5555
4E8765681A22E5B40090CFB9 /* SWTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E8765601A22E5B40090CFB9 /* SWTableViewCell.m */; };
5656
4E8765691A22E5B40090CFB9 /* SWUtilityButtonTapGestureRecognizer.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E8765621A22E5B40090CFB9 /* SWUtilityButtonTapGestureRecognizer.m */; };
5757
4E87656A1A22E5B40090CFB9 /* SWUtilityButtonView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E8765641A22E5B40090CFB9 /* SWUtilityButtonView.m */; };
58+
4E8AF7861A53D69F00CDC3AE /* StartImagesManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E8AF7851A53D69F00CDC3AE /* StartImagesManager.m */; };
5859
4E9113A21A1C426000AC9431 /* ASPopUpView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E91139F1A1C426000AC9431 /* ASPopUpView.m */; };
5960
4E9113A31A1C426000AC9431 /* ASProgressPopUpView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E9113A11A1C426000AC9431 /* ASProgressPopUpView.m */; };
6061
4E9113A91A1CB19900AC9431 /* [email protected] in Resources */ = {isa = PBXBuildFile; fileRef = 4E9113A51A1CB19900AC9431 /* [email protected] */; };
@@ -499,7 +500,7 @@
499500
4E07D3101A4D1484009EDDF2 /* EaseStartView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = EaseStartView.m; sourceTree = "<group>"; };
500501
4E07D3121A4D3CA6009EDDF2 /* [email protected] */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "[email protected]"; sourceTree = "<group>"; };
501502
4E07D3131A4D3CA6009EDDF2 /* [email protected] */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "[email protected]"; sourceTree = "<group>"; };
502-
4E07D3141A4D3CA6009EDDF2 /* startImage@2x.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = "startImage@2x.jpg"; sourceTree = "<group>"; };
503+
4E07D3141A4D3CA6009EDDF2 /* STARTIMAGE.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = STARTIMAGE.jpg; sourceTree = "<group>"; };
503504
4E15C7CE1A26D2F000FB8DAD /* FolderToMoveViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FolderToMoveViewController.h; sourceTree = "<group>"; };
504505
4E15C7CF1A26D2F000FB8DAD /* FolderToMoveViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FolderToMoveViewController.m; sourceTree = "<group>"; };
505506
4E15C7D41A271A6300FB8DAD /* EaseToolBar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EaseToolBar.h; sourceTree = "<group>"; };
@@ -575,6 +576,8 @@
575576
4E8765621A22E5B40090CFB9 /* SWUtilityButtonTapGestureRecognizer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SWUtilityButtonTapGestureRecognizer.m; sourceTree = "<group>"; };
576577
4E8765631A22E5B40090CFB9 /* SWUtilityButtonView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SWUtilityButtonView.h; sourceTree = "<group>"; };
577578
4E8765641A22E5B40090CFB9 /* SWUtilityButtonView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SWUtilityButtonView.m; sourceTree = "<group>"; };
579+
4E8AF7841A53D69F00CDC3AE /* StartImagesManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StartImagesManager.h; sourceTree = "<group>"; };
580+
4E8AF7851A53D69F00CDC3AE /* StartImagesManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = StartImagesManager.m; sourceTree = "<group>"; };
578581
4E91139E1A1C426000AC9431 /* ASPopUpView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ASPopUpView.h; sourceTree = "<group>"; };
579582
4E91139F1A1C426000AC9431 /* ASPopUpView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ASPopUpView.m; sourceTree = "<group>"; };
580583
4E9113A01A1C426000AC9431 /* ASProgressPopUpView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ASProgressPopUpView.h; sourceTree = "<group>"; };
@@ -1553,6 +1556,8 @@
15531556
4ECE8AFA1A3946C10021E29C /* UnReadManager.m */,
15541557
4ECE8AFB1A3946C10021E29C /* WebContentManager.h */,
15551558
4ECE8AFC1A3946C10021E29C /* WebContentManager.m */,
1559+
4E8AF7841A53D69F00CDC3AE /* StartImagesManager.h */,
1560+
4E8AF7851A53D69F00CDC3AE /* StartImagesManager.m */,
15561561
);
15571562
path = Manager;
15581563
sourceTree = "<group>";
@@ -2035,7 +2040,7 @@
20352040
4E07D30C1A4A9F45009EDDF2 /* [email protected] */,
20362041
4E07D3121A4D3CA6009EDDF2 /* [email protected] */,
20372042
4E07D3131A4D3CA6009EDDF2 /* [email protected] */,
2038-
4E07D3141A4D3CA6009EDDF2 /* startImage@2x.jpg */,
2043+
4E07D3141A4D3CA6009EDDF2 /* STARTIMAGE.jpg */,
20392044
);
20402045
path = Images;
20412046
sourceTree = "<group>";
@@ -2679,7 +2684,7 @@
26792684
8E97CEA31A0C7E26006F9AD7 /* [email protected] in Resources */,
26802685
4EBD0C661A1F2011004B4284 /* [email protected] in Resources */,
26812686
8EF643B519FF7E2900F7EEB0 /* Input_LeftImgage_Cell.xib in Resources */,
2682-
4E07D3171A4D3CA6009EDDF2 /* startImage@2x.jpg in Resources */,
2687+
4E07D3171A4D3CA6009EDDF2 /* STARTIMAGE.jpg in Resources */,
26832688
4E923E781A2F040D00427514 /* [email protected] in Resources */,
26842689
8EA6D17E19E240C40076D59C /* [email protected] in Resources */,
26852690
8E97CE9E1A0C7E26006F9AD7 /* [email protected] in Resources */,
@@ -2972,6 +2977,7 @@
29722977
4E2906A21A403B7D008A5B97 /* FileDownloadView.m in Sources */,
29732978
4E6BA2DC1A1EE6AF005FD721 /* AFNetworkReachabilityManager.m in Sources */,
29742979
8E59F0E31A0098BA009A905F /* UIScrollView+SVPullToRefresh.m in Sources */,
2980+
4E8AF7861A53D69F00CDC3AE /* StartImagesManager.m in Sources */,
29752981
8EA6D13419E240C40076D59C /* ProjectMemberListViewController.m in Sources */,
29762982
8EF643CC19FF7E2900F7EEB0 /* TweetCommentCell.m in Sources */,
29772983
8EA6D23A19E240C40076D59C /* ProjectTopicListView.m in Sources */,

Coding_iOS/AppDelegate.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(
6767
}
6868
[self.window makeKeyAndVisible];
6969

70-
EaseStartView *startView = [EaseStartView startViewWithBgImage:[UIImage imageNamed:@"startImage.jpg"] descriptionStr:@"“最春光乍泄” @堂堂超栗子"];
70+
EaseStartView *startView = [EaseStartView startView];
7171
@weakify(self);
7272
[startView startAnimationWithCompletionBlock:^(EaseStartView *easeStartView) {
7373
@strongify(self);
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
//
2+
// StartImagesManager.h
3+
// Coding_iOS
4+
//
5+
// Created by Ease on 14/12/31.
6+
// Copyright (c) 2014年 Coding. All rights reserved.
7+
//
8+
9+
#import <Foundation/Foundation.h>
10+
11+
@class StartImage;
12+
13+
@interface StartImagesManager : NSObject
14+
+ (instancetype)shareManager;
15+
16+
- (StartImage *)randomImage;
17+
- (StartImage *)curImage;
18+
19+
@end
20+
21+
@interface StartImage : NSObject
22+
@property (strong, nonatomic) NSString *fileName, *pathDisk, *descriptionStr;
23+
@property (assign, nonatomic) BOOL hasBeenDownload;
24+
- (UIImage *)image;
25+
+ (StartImage *)defautImage;
26+
+ (StartImage *)stFromDict:(NSDictionary *)dict;
27+
@end
Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,120 @@
1+
//
2+
// StartImagesManager.m
3+
// Coding_iOS
4+
//
5+
// Created by Ease on 14/12/31.
6+
// Copyright (c) 2014年 Coding. All rights reserved.
7+
//
8+
9+
#import "StartImagesManager.h"
10+
11+
@interface StartImagesManager ()
12+
@property (strong, nonatomic) NSDictionary *imageDict;
13+
@property (strong, nonatomic) NSMutableArray *imageLoadedArray;
14+
@property (strong, nonatomic) StartImage *startImage;
15+
@end
16+
17+
@implementation StartImagesManager
18+
+ (instancetype)shareManager{
19+
static StartImagesManager *shared_manager = nil;
20+
static dispatch_once_t pred;
21+
dispatch_once(&pred, ^{
22+
shared_manager = [[self alloc] init];
23+
});
24+
return shared_manager;
25+
}
26+
27+
- (instancetype)init
28+
{
29+
self = [super init];
30+
if (self) {
31+
[self createFolder:[self downloadPath]];
32+
[self loadStartImages];
33+
}
34+
return self;
35+
}
36+
37+
- (BOOL)createFolder:(NSString *)path{
38+
BOOL isDir = NO;
39+
NSFileManager *fileManager = [NSFileManager defaultManager];
40+
BOOL existed = [fileManager fileExistsAtPath:path isDirectory:&isDir];
41+
BOOL isCreated = NO;
42+
if (!(isDir == YES && existed == YES)){
43+
isCreated = [fileManager createDirectoryAtPath:path withIntermediateDirectories:YES attributes:nil error:nil];
44+
}else{
45+
isCreated = YES;
46+
}
47+
return isCreated;
48+
}
49+
50+
- (NSString *)downloadPath{
51+
NSString *documentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
52+
NSString *downloadPath = [documentPath stringByAppendingPathComponent:@"Coding_StartImages"];
53+
return downloadPath;
54+
}
55+
56+
- (StartImage *)randomImage{
57+
NSUInteger count = _imageLoadedArray.count;
58+
if (count > 0) {
59+
NSUInteger index = arc4random()%count;
60+
_startImage = [_imageLoadedArray objectAtIndex:index];
61+
}else{
62+
_startImage = [StartImage defautImage];
63+
}
64+
return _startImage;
65+
}
66+
- (StartImage *)curImage{
67+
if (_startImage) {
68+
_startImage = [StartImage defautImage];
69+
}
70+
return _startImage;
71+
}
72+
73+
- (NSString *)pathOfSTPlist{
74+
return [[self downloadPath] stringByAppendingPathComponent:@"STARTIMAGE.plist"];
75+
}
76+
77+
- (void)loadStartImages{
78+
self.imageDict = [[NSDictionary alloc] initWithContentsOfFile:[self pathOfSTPlist]];
79+
self.imageLoadedArray = [[NSMutableArray alloc] init];
80+
NSString *path = [self downloadPath];
81+
NSArray *fileContents = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:path error:NULL];
82+
for (NSString *curFileName in [fileContents objectEnumerator]) {
83+
NSString *filePath = [path stringByAppendingPathComponent:curFileName];
84+
BOOL isDirectory;
85+
[[NSFileManager defaultManager] fileExistsAtPath:filePath isDirectory:&isDirectory];
86+
StartImage *st = [StartImage stFromDict:[self.imageDict objectForKey:curFileName]];
87+
if (st) {
88+
st.pathDisk = filePath;
89+
[self.imageLoadedArray addObject:st];
90+
}
91+
}
92+
}
93+
94+
@end
95+
96+
@implementation StartImage
97+
98+
- (UIImage *)image{
99+
return [UIImage imageWithContentsOfFile:self.pathDisk];
100+
}
101+
102+
+ (StartImage *)defautImage{
103+
StartImage *st = [[StartImage alloc] init];
104+
st.hasBeenDownload = YES;
105+
st.descriptionStr = @"“最春光乍泄” @堂堂超栗子";
106+
st.fileName = @"STARTIMAGE.jpg";
107+
108+
st.pathDisk = [[NSBundle mainBundle] pathForResource:@"STARTIMAGE" ofType:@"jpg"];
109+
return st;
110+
}
111+
+ (StartImage *)stFromDict:(NSDictionary *)dict{
112+
StartImage *st = [[StartImage alloc] init];
113+
st.hasBeenDownload = YES;
114+
115+
st.descriptionStr = [dict objectForKey:@"descriptionStr"];
116+
st.fileName = [dict objectForKey:@"fileName"];
117+
return st;
118+
}
119+
120+
@end

Coding_iOS/Views/EaseStartView.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
#import <UIKit/UIKit.h>
1010

1111
@interface EaseStartView : UIView
12-
+ (instancetype)startViewWithBgImage:(UIImage *)bgImage descriptionStr:(NSString *)descriptionStr;
12+
+ (instancetype)startView;
1313

1414
- (void)startAnimationWithCompletionBlock:(void(^)(EaseStartView *easeStartView))completionHandler;
1515
@end

Coding_iOS/Views/EaseStartView.m

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
#import "EaseStartView.h"
1010
#import <NYXImagesKit/NYXImagesKit.h>
1111
#import <Masonry/Masonry.h>
12+
#import "StartImagesManager.h"
1213

1314
@interface EaseStartView ()
1415
@property (strong, nonatomic) UIImageView *bgImageView, *logoIconView;
@@ -17,9 +18,10 @@ @interface EaseStartView ()
1718

1819
@implementation EaseStartView
1920

20-
+ (instancetype)startViewWithBgImage:(UIImage *)bgImage descriptionStr:(NSString *)descriptionStr{
21+
+ (instancetype)startView{
2122
UIImage *logoIcon = [UIImage imageNamed:@"logo_coding"];
22-
return [[self alloc] initWithBgImage:bgImage logoIcon:logoIcon descriptionStr:descriptionStr];
23+
StartImage *st = [[StartImagesManager shareManager] randomImage];
24+
return [[self alloc] initWithBgImage:st.image logoIcon:logoIcon descriptionStr:st.descriptionStr];
2325
}
2426

2527
- (instancetype)initWithBgImage:(UIImage *)bgImage logoIcon:(UIImage *)logoIcon descriptionStr:(NSString *)descriptionStr{

0 commit comments

Comments
 (0)