Commit 6cbc01a51740fcc7e545052d128838117ff2ce7d

Authored by zhangxiaowen
1 parent 4084de52

no message

Showing 122 changed files with 1320 additions and 17 deletions
CNLiveLoginModule.podspec
... ... @@ -31,18 +31,46 @@ TODO: 网家家-登录模块.
31 31 s.ios.deployment_target = '9.0'
32 32  
33 33 # s.source_files = 'CNLiveLoginModule/Classes/**/*'
  34 +
34 35 # Module
35 36 s.subspec 'Module' do |ss|
36 37 ss.source_files = 'CNLiveLoginModule/Classes/Module/*.{h,m}'
37 38 end
38 39  
39   - # s.resource_bundles = {
40   - # 'CNLiveLoginModule' => ['CNLiveLoginModule/Assets/*.png']
41   - # }
  40 + # Controller
  41 + s.subspec 'Controller' do |ss|
  42 + ss.source_files = 'CNLiveLoginModule/Classes/Controller/*.{h,m}'
  43 + end
  44 +
  45 + # View
  46 + s.subspec 'View' do |ss|
  47 + ss.source_files = 'CNLiveLoginModule/Classes/View/*.{h,m}'
  48 + end
  49 +
  50 + # Model
  51 + s.subspec 'Model' do |ss|
  52 + ss.source_files = 'CNLiveLoginModule/Classes/Model/*.{h,m}'
  53 + end
  54 +
  55 + s.resource_bundles = {
  56 + 'CNLiveLoginModule' => ['CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets']
  57 + }
42 58  
43 59 # s.public_header_files = 'Pod/Classes/**/*.h'
44 60 # s.frameworks = 'UIKit', 'MapKit'
45 61  
46 62 s.dependency 'CNLiveServices'
47 63  
  64 + # pod
  65 + s.dependency 'CNLiveTripartiteManagement/QMUIKit'
  66 + s.dependency 'CNLiveTripartiteManagement/SDWebImage'
  67 + s.dependency 'CNLiveTripartiteManagement/Masonry'
  68 + s.dependency 'CNLiveTripartiteManagement/MJExtension'
  69 +
  70 + # 服务层
  71 + s.dependency 'CNLiveServices'
  72 +
  73 + # 用户信息本地化
  74 + s.dependency 'CNLiveUserManagement'
  75 +
48 76 end
... ...
CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/Contents.json 0 → 100644
  1 +{
  2 + "info" : {
  3 + "version" : 1,
  4 + "author" : "xcode"
  5 + }
  6 +}
0 7 \ No newline at end of file
... ...
CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/code_refresh.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "idiom" : "universal",
  9 + "filename" : "code_refresh@2x.png",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "idiom" : "universal",
  14 + "filename" : "code_refresh@3x.png",
  15 + "scale" : "3x"
  16 + }
  17 + ],
  18 + "info" : {
  19 + "version" : 1,
  20 + "author" : "xcode"
  21 + }
  22 +}
0 23 \ No newline at end of file
... ...
CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/code_refresh.imageset/code_refresh@2x.png 0 → 100644

1.46 KB

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/code_refresh.imageset/code_refresh@3x.png 0 → 100644

2.57 KB

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/default_avatar_f.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "filename" : "default_avatar_f.png",
  6 + "scale" : "1x"
  7 + },
  8 + {
  9 + "idiom" : "universal",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "idiom" : "universal",
  14 + "scale" : "3x"
  15 + }
  16 + ],
  17 + "info" : {
  18 + "version" : 1,
  19 + "author" : "xcode"
  20 + }
  21 +}
0 22 \ No newline at end of file
... ...
CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/default_avatar_f.imageset/default_avatar_f.png 0 → 100644

11.1 KB

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/default_avatar_y.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "filename" : "default_avatar_y.png",
  6 + "scale" : "1x"
  7 + },
  8 + {
  9 + "idiom" : "universal",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "idiom" : "universal",
  14 + "scale" : "3x"
  15 + }
  16 + ],
  17 + "info" : {
  18 + "version" : 1,
  19 + "author" : "xcode"
  20 + }
  21 +}
0 22 \ No newline at end of file
... ...
CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/default_avatar_y.imageset/default_avatar_y.png 0 → 100644

10.7 KB

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/flashlight_close.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "idiom" : "universal",
  9 + "filename" : "flashlight_close@2x.png",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "idiom" : "universal",
  14 + "filename" : "flashlight_close@3x.png",
  15 + "scale" : "3x"
  16 + }
  17 + ],
  18 + "info" : {
  19 + "version" : 1,
  20 + "author" : "xcode"
  21 + }
  22 +}
0 23 \ No newline at end of file
... ...
CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/flashlight_close.imageset/flashlight_close@2x.png 0 → 100644

1.29 KB

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/flashlight_close.imageset/flashlight_close@3x.png 0 → 100644

1.41 KB

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/flashlight_open.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "idiom" : "universal",
  9 + "filename" : "flashlight_open@2x.png",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "idiom" : "universal",
  14 + "filename" : "flashlight_open@3x.png",
  15 + "scale" : "3x"
  16 + }
  17 + ],
  18 + "info" : {
  19 + "version" : 1,
  20 + "author" : "xcode"
  21 + }
  22 +}
0 23 \ No newline at end of file
... ...
CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/flashlight_open.imageset/flashlight_open@2x.png 0 → 100644

1.34 KB

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/flashlight_open.imageset/flashlight_open@3x.png 0 → 100644

1.52 KB

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_activity.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "idiom" : "universal",
  9 + "filename" : "mine_activity@2x.png",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "idiom" : "universal",
  14 + "filename" : "mine_activity@3x.png",
  15 + "scale" : "3x"
  16 + }
  17 + ],
  18 + "info" : {
  19 + "version" : 1,
  20 + "author" : "xcode"
  21 + }
  22 +}
0 23 \ No newline at end of file
... ...
CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_activity.imageset/mine_activity@2x.png 0 → 100644

2.73 KB

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_activity.imageset/mine_activity@3x.png 0 → 100644

6.3 KB

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_address.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "idiom" : "universal",
  9 + "filename" : "mine_address@2x.png",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "idiom" : "universal",
  14 + "filename" : "mine_address@3x.png",
  15 + "scale" : "3x"
  16 + }
  17 + ],
  18 + "info" : {
  19 + "version" : 1,
  20 + "author" : "xcode"
  21 + }
  22 +}
0 23 \ No newline at end of file
... ...
CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_address.imageset/mine_address@2x.png 0 → 100644

2.89 KB

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_address.imageset/mine_address@3x.png 0 → 100644

5.49 KB

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_back_white_b.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "idiom" : "universal",
  9 + "filename" : "mine_back_white_b@2x.png",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "idiom" : "universal",
  14 + "filename" : "mine_back_white_b@3x.png",
  15 + "scale" : "3x"
  16 + }
  17 + ],
  18 + "info" : {
  19 + "version" : 1,
  20 + "author" : "xcode"
  21 + }
  22 +}
0 23 \ No newline at end of file
... ...
CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_back_white_b.imageset/mine_back_white_b@2x.png 0 → 100644

2.03 KB

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_back_white_b.imageset/mine_back_white_b@3x.png 0 → 100644

2.28 KB

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_bg.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "idiom" : "universal",
  9 + "filename" : "mine_bg@2x.png",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "idiom" : "universal",
  14 + "filename" : "mine_bg@3x.png",
  15 + "scale" : "3x"
  16 + }
  17 + ],
  18 + "info" : {
  19 + "version" : 1,
  20 + "author" : "xcode"
  21 + }
  22 +}
0 23 \ No newline at end of file
... ...
CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_bg.imageset/mine_bg@2x.png 0 → 100644

25.9 KB

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_bg.imageset/mine_bg@3x.png 0 → 100644

50.7 KB

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_buy_commodity.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "idiom" : "universal",
  9 + "filename" : "mine_buy_commodity@2x.png",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "idiom" : "universal",
  14 + "filename" : "mine_buy_commodity@3x.png",
  15 + "scale" : "3x"
  16 + }
  17 + ],
  18 + "info" : {
  19 + "version" : 1,
  20 + "author" : "xcode"
  21 + }
  22 +}
0 23 \ No newline at end of file
... ...
CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_buy_commodity.imageset/mine_buy_commodity@2x.png 0 → 100644

1.71 KB

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_buy_commodity.imageset/mine_buy_commodity@3x.png 0 → 100644

3.16 KB

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_card.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "idiom" : "universal",
  9 + "filename" : "mine_card@2x.png",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "idiom" : "universal",
  14 + "filename" : "mine_card@3x.png",
  15 + "scale" : "3x"
  16 + }
  17 + ],
  18 + "info" : {
  19 + "version" : 1,
  20 + "author" : "xcode"
  21 + }
  22 +}
0 23 \ No newline at end of file
... ...
CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_card.imageset/mine_card@2x.png 0 → 100644

2.48 KB

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_card.imageset/mine_card@3x.png 0 → 100644

4.57 KB

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_china_sport.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "idiom" : "universal",
  9 + "filename" : "mine_china_sport@2x.png",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "idiom" : "universal",
  14 + "filename" : "mine_china_sport@3x.png",
  15 + "scale" : "3x"
  16 + }
  17 + ],
  18 + "info" : {
  19 + "version" : 1,
  20 + "author" : "xcode"
  21 + }
  22 +}
0 23 \ No newline at end of file
... ...
CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_china_sport.imageset/mine_china_sport@2x.png 0 → 100644

2.83 KB

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_china_sport.imageset/mine_china_sport@3x.png 0 → 100644

6.34 KB

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_code.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "idiom" : "universal",
  9 + "filename" : "mine_code@2x.png",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "idiom" : "universal",
  14 + "filename" : "mine_code@3x.png",
  15 + "scale" : "3x"
  16 + }
  17 + ],
  18 + "info" : {
  19 + "version" : 1,
  20 + "author" : "xcode"
  21 + }
  22 +}
0 23 \ No newline at end of file
... ...
CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_code.imageset/mine_code@2x.png 0 → 100644

1.06 KB

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_code.imageset/mine_code@3x.png 0 → 100644

2.03 KB

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_code_more.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "idiom" : "universal",
  9 + "filename" : "mine_code_more@2x.png",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "idiom" : "universal",
  14 + "filename" : "mine_code_more@3x.png",
  15 + "scale" : "3x"
  16 + }
  17 + ],
  18 + "info" : {
  19 + "version" : 1,
  20 + "author" : "xcode"
  21 + }
  22 +}
0 23 \ No newline at end of file
... ...
CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_code_more.imageset/mine_code_more@2x.png 0 → 100644

205 Bytes

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_code_more.imageset/mine_code_more@3x.png 0 → 100644

962 Bytes

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_common.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "idiom" : "universal",
  9 + "filename" : "mine_common@2x.png",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "idiom" : "universal",
  14 + "filename" : "mine_common@3x.png",
  15 + "scale" : "3x"
  16 + }
  17 + ],
  18 + "info" : {
  19 + "version" : 1,
  20 + "author" : "xcode"
  21 + }
  22 +}
0 23 \ No newline at end of file
... ...
CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_common.imageset/mine_common@2x.png 0 → 100644

2.14 KB

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_common.imageset/mine_common@3x.png 0 → 100644

4.11 KB

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_e-ticket.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "idiom" : "universal",
  9 + "filename" : "mine_e-ticket@2x.png",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "idiom" : "universal",
  14 + "filename" : "mine_e-ticket@3x.png",
  15 + "scale" : "3x"
  16 + }
  17 + ],
  18 + "info" : {
  19 + "version" : 1,
  20 + "author" : "xcode"
  21 + }
  22 +}
0 23 \ No newline at end of file
... ...
CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_e-ticket.imageset/mine_e-ticket@2x.png 0 → 100644

5.94 KB

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_e-ticket.imageset/mine_e-ticket@3x.png 0 → 100644

11.8 KB

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_evaluate.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "idiom" : "universal",
  9 + "filename" : "mine_evaluate@2x.png",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "idiom" : "universal",
  14 + "filename" : "mine_evaluate@3x.png",
  15 + "scale" : "3x"
  16 + }
  17 + ],
  18 + "info" : {
  19 + "version" : 1,
  20 + "author" : "xcode"
  21 + }
  22 +}
0 23 \ No newline at end of file
... ...
CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_evaluate.imageset/mine_evaluate@2x.png 0 → 100644

2.09 KB

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_evaluate.imageset/mine_evaluate@3x.png 0 → 100644

4.1 KB

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_front.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "idiom" : "universal",
  9 + "filename" : "mine_front@2x.png",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "idiom" : "universal",
  14 + "filename" : "mine_front@3x.png",
  15 + "scale" : "3x"
  16 + }
  17 + ],
  18 + "info" : {
  19 + "version" : 1,
  20 + "author" : "xcode"
  21 + }
  22 +}
0 23 \ No newline at end of file
... ...
CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_front.imageset/mine_front@2x.png 0 → 100644

266 Bytes

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_front.imageset/mine_front@3x.png 0 → 100644

615 Bytes

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_invitation.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "idiom" : "universal",
  9 + "filename" : "mine_invitation@2x.png",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "idiom" : "universal",
  14 + "filename" : "mine_invitation@3x.png",
  15 + "scale" : "3x"
  16 + }
  17 + ],
  18 + "info" : {
  19 + "version" : 1,
  20 + "author" : "xcode"
  21 + }
  22 +}
0 23 \ No newline at end of file
... ...
CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_invitation.imageset/mine_invitation@2x.png 0 → 100644

2.6 KB

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_invitation.imageset/mine_invitation@3x.png 0 → 100644

4.99 KB

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_like.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "idiom" : "universal",
  9 + "filename" : "mine_like@2x.png",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "idiom" : "universal",
  14 + "filename" : "mine_like@3x.png",
  15 + "scale" : "3x"
  16 + }
  17 + ],
  18 + "info" : {
  19 + "version" : 1,
  20 + "author" : "xcode"
  21 + }
  22 +}
0 23 \ No newline at end of file
... ...
CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_like.imageset/mine_like@2x.png 0 → 100644

2.51 KB

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_like.imageset/mine_like@3x.png 0 → 100644

4.95 KB

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_location.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "idiom" : "universal",
  9 + "filename" : "mine_location@2x.png",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "idiom" : "universal",
  14 + "filename" : "mine_location@3x.png",
  15 + "scale" : "3x"
  16 + }
  17 + ],
  18 + "info" : {
  19 + "version" : 1,
  20 + "author" : "xcode"
  21 + }
  22 +}
0 23 \ No newline at end of file
... ...
CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_location.imageset/mine_location@2x.png 0 → 100644

767 Bytes

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_location.imageset/mine_location@3x.png 0 → 100644

1.47 KB

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_observer.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "idiom" : "universal",
  9 + "filename" : "mine_observer@2x.png",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "idiom" : "universal",
  14 + "scale" : "3x"
  15 + }
  16 + ],
  17 + "info" : {
  18 + "version" : 1,
  19 + "author" : "xcode"
  20 + }
  21 +}
0 22 \ No newline at end of file
... ...
CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_observer.imageset/mine_observer@2x.png 0 → 100644

68.8 KB

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_order.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "idiom" : "universal",
  9 + "filename" : "mine_order@2x.png",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "idiom" : "universal",
  14 + "filename" : "mine_order@3x.png",
  15 + "scale" : "3x"
  16 + }
  17 + ],
  18 + "info" : {
  19 + "version" : 1,
  20 + "author" : "xcode"
  21 + }
  22 +}
0 23 \ No newline at end of file
... ...
CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_order.imageset/mine_order@2x.png 0 → 100644

623 Bytes

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_order.imageset/mine_order@3x.png 0 → 100644

1.38 KB

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_overbadge.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "idiom" : "universal",
  9 + "filename" : "mine_overbadge@2x.png",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "idiom" : "universal",
  14 + "filename" : "mine_overbadge@3x.png",
  15 + "scale" : "3x"
  16 + }
  17 + ],
  18 + "info" : {
  19 + "version" : 1,
  20 + "author" : "xcode"
  21 + }
  22 +}
0 23 \ No newline at end of file
... ...
CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_overbadge.imageset/mine_overbadge@2x.png 0 → 100644

1.91 KB

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_overbadge.imageset/mine_overbadge@3x.png 0 → 100644

3.61 KB

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_pending.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "idiom" : "universal",
  9 + "filename" : "mine_pending@2x.png",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "idiom" : "universal",
  14 + "filename" : "mine_pending@3x.png",
  15 + "scale" : "3x"
  16 + }
  17 + ],
  18 + "info" : {
  19 + "version" : 1,
  20 + "author" : "xcode"
  21 + }
  22 +}
0 23 \ No newline at end of file
... ...
CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_pending.imageset/mine_pending@2x.png 0 → 100644

732 Bytes

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_pending.imageset/mine_pending@3x.png 0 → 100644

1.38 KB

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_received.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "idiom" : "universal",
  9 + "filename" : "mine_received@2x.png",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "idiom" : "universal",
  14 + "filename" : "mine_received@3x.png",
  15 + "scale" : "3x"
  16 + }
  17 + ],
  18 + "info" : {
  19 + "version" : 1,
  20 + "author" : "xcode"
  21 + }
  22 +}
0 23 \ No newline at end of file
... ...
CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_received.imageset/mine_received@2x.png 0 → 100644

2.33 KB

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_received.imageset/mine_received@3x.png 0 → 100644

4.88 KB

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_record.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "idiom" : "universal",
  9 + "filename" : "mine_record@2x.png",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "idiom" : "universal",
  14 + "filename" : "mine_record@3x.png",
  15 + "scale" : "3x"
  16 + }
  17 + ],
  18 + "info" : {
  19 + "version" : 1,
  20 + "author" : "xcode"
  21 + }
  22 +}
0 23 \ No newline at end of file
... ...
CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_record.imageset/mine_record@2x.png 0 → 100644

2.31 KB

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_record.imageset/mine_record@3x.png 0 → 100644

6.51 KB

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_refund.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "idiom" : "universal",
  9 + "filename" : "mine_refund@2x.png",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "idiom" : "universal",
  14 + "filename" : "mine_refund@3x.png",
  15 + "scale" : "3x"
  16 + }
  17 + ],
  18 + "info" : {
  19 + "version" : 1,
  20 + "author" : "xcode"
  21 + }
  22 +}
0 23 \ No newline at end of file
... ...
CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_refund.imageset/mine_refund@2x.png 0 → 100644

3.32 KB

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_refund.imageset/mine_refund@3x.png 0 → 100644

6.67 KB

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_release.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "idiom" : "universal",
  9 + "filename" : "mine_release@2x.png",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "idiom" : "universal",
  14 + "filename" : "mine_release@3x.png",
  15 + "scale" : "3x"
  16 + }
  17 + ],
  18 + "info" : {
  19 + "version" : 1,
  20 + "author" : "xcode"
  21 + }
  22 +}
0 23 \ No newline at end of file
... ...
CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_release.imageset/mine_release@2x.png 0 → 100644

1.61 KB

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_release.imageset/mine_release@3x.png 0 → 100644

3.1 KB

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_set.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "idiom" : "universal",
  9 + "filename" : "mine_set@2x.png",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "idiom" : "universal",
  14 + "filename" : "mine_set@3x.png",
  15 + "scale" : "3x"
  16 + }
  17 + ],
  18 + "info" : {
  19 + "version" : 1,
  20 + "author" : "xcode"
  21 + }
  22 +}
0 23 \ No newline at end of file
... ...
CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_set.imageset/mine_set@2x.png 0 → 100644

2.83 KB

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_set.imageset/mine_set@3x.png 0 → 100644

5.77 KB

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_soccer_task.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "idiom" : "universal",
  9 + "filename" : "mine_soccer_task@2x.png",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "idiom" : "universal",
  14 + "filename" : "mine_soccer_task@3x.png",
  15 + "scale" : "3x"
  16 + }
  17 + ],
  18 + "info" : {
  19 + "version" : 1,
  20 + "author" : "xcode"
  21 + }
  22 +}
0 23 \ No newline at end of file
... ...
CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_soccer_task.imageset/mine_soccer_task@2x.png 0 → 100644

30 KB

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_soccer_task.imageset/mine_soccer_task@3x.png 0 → 100644

67.4 KB

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_tool_map.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "idiom" : "universal",
  9 + "filename" : "mine_tool_map@2x.png",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "idiom" : "universal",
  14 + "filename" : "mine_tool_map@3x.png",
  15 + "scale" : "3x"
  16 + }
  17 + ],
  18 + "info" : {
  19 + "version" : 1,
  20 + "author" : "xcode"
  21 + }
  22 +}
0 23 \ No newline at end of file
... ...
CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_tool_map.imageset/mine_tool_map@2x.png 0 → 100644

2.73 KB

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_tool_map.imageset/mine_tool_map@3x.png 0 → 100644

7.13 KB

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_wjj_certification.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "idiom" : "universal",
  9 + "filename" : "mine_wjj_certification@2x.png",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "idiom" : "universal",
  14 + "filename" : "mine_wjj_certification@3x.png",
  15 + "scale" : "3x"
  16 + }
  17 + ],
  18 + "info" : {
  19 + "version" : 1,
  20 + "author" : "xcode"
  21 + }
  22 +}
0 23 \ No newline at end of file
... ...
CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_wjj_certification.imageset/mine_wjj_certification@2x.png 0 → 100644

6.92 KB

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/mine_wjj_certification.imageset/mine_wjj_certification@3x.png 0 → 100644

15.1 KB

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/qr_code_bg.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "idiom" : "universal",
  9 + "filename" : "qr_code_bg@2x.png",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "idiom" : "universal",
  14 + "filename" : "qr_code_bg@3x.png",
  15 + "scale" : "3x"
  16 + }
  17 + ],
  18 + "info" : {
  19 + "version" : 1,
  20 + "author" : "xcode"
  21 + }
  22 +}
0 23 \ No newline at end of file
... ...
CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/qr_code_bg.imageset/qr_code_bg@2x.png 0 → 100644

104 KB

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/qr_code_bg.imageset/qr_code_bg@3x.png 0 → 100644

142 KB

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/qr_code_green.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "idiom" : "universal",
  9 + "filename" : "qr_code_green@2x.png",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "idiom" : "universal",
  14 + "filename" : "qr_code_green@3x.png",
  15 + "scale" : "3x"
  16 + }
  17 + ],
  18 + "info" : {
  19 + "version" : 1,
  20 + "author" : "xcode"
  21 + }
  22 +}
0 23 \ No newline at end of file
... ...
CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/qr_code_green.imageset/qr_code_green@2x.png 0 → 100644

1.57 KB

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/qr_code_green.imageset/qr_code_green@3x.png 0 → 100644

1.72 KB

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/qr_code_icon.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "idiom" : "universal",
  9 + "filename" : "qr_code_icon@2x.png",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "idiom" : "universal",
  14 + "filename" : "qr_code_icon@3x.png",
  15 + "scale" : "3x"
  16 + }
  17 + ],
  18 + "info" : {
  19 + "version" : 1,
  20 + "author" : "xcode"
  21 + }
  22 +}
0 23 \ No newline at end of file
... ...
CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/qr_code_icon.imageset/qr_code_icon@2x.png 0 → 100644

7.47 KB

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/qr_code_icon.imageset/qr_code_icon@3x.png 0 → 100644

11.1 KB

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/sign_in_soccer.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "idiom" : "universal",
  9 + "filename" : "sign_in_soccer@2x.png",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "idiom" : "universal",
  14 + "filename" : "sign_in_soccer@3x.png",
  15 + "scale" : "3x"
  16 + }
  17 + ],
  18 + "info" : {
  19 + "version" : 1,
  20 + "author" : "xcode"
  21 + }
  22 +}
0 23 \ No newline at end of file
... ...
CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/sign_in_soccer.imageset/sign_in_soccer@2x.png 0 → 100644

1.64 KB

CNLiveLoginModule/Assets/CNLiveLoginModule.xcassets/sign_in_soccer.imageset/sign_in_soccer@3x.png 0 → 100644

4.54 KB

CNLiveLoginModule/Classes/Controller/CNLiveLoginController.h 0 → 100644
  1 +//
  2 +// CNLiveLoginController.h
  3 +// CNLiveLoginModule
  4 +//
  5 +// Created by 153993236@qq.com on 11/12/2019.
  6 +// Copyright (c) 2019 153993236@qq.com. All rights reserved.
  7 +//
  8 +
  9 +#import <UIKit/UIKit.h>
  10 +
  11 +NS_ASSUME_NONNULL_BEGIN
  12 +
  13 +@interface CNLiveLoginController : UIViewController
  14 +@property (nonatomic, assign) BOOL isShow;
  15 +
  16 +@end
  17 +
  18 +NS_ASSUME_NONNULL_END
... ...
CNLiveLoginModule/Classes/Controller/CNLiveLoginController.m 0 → 100644
  1 +//
  2 +// CNLiveLoginController.m
  3 +// CNLiveLoginModule
  4 +//
  5 +// Created by 153993236@qq.com on 11/12/2019.
  6 +// Copyright (c) 2019 153993236@qq.com. All rights reserved.
  7 +//
  8 +
  9 +#import "CNLiveLoginController.h"
  10 +
  11 +#import "MJExtension.h"
  12 +#import "QMUIKit.h"
  13 +
  14 +#define HexColor(rgbValue) [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 green:((float)((rgbValue & 0xFF00) >> 8))/255.0 blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0]
  15 +
  16 +@interface CNLiveLoginController()
  17 +
  18 +@end
  19 +
  20 +@implementation CNLiveLoginController
  21 +
  22 +#pragma mark - 生命周期
  23 +- (void)viewWillAppear:(BOOL)animated{
  24 + [super viewWillAppear:animated];
  25 + self.navigationController.navigationBarHidden = YES;
  26 +}
  27 +
  28 +- (void)viewDidLoad {
  29 + [super viewDidLoad];
  30 + self.view.backgroundColor = HexColor(0xf4f4f4);
  31 + [self createSubViews];
  32 +
  33 +}
  34 +
  35 +- (void)dealloc {
  36 +
  37 +
  38 +}
  39 +
  40 +- (void)createSubViews {
  41 +
  42 +}
  43 +
  44 +#pragma mark - 懒加载
  45 +
  46 +/**
  47 + * 创建图片
  48 + *
  49 + * @param imageName 图片名字
  50 + * @param bundleName 图片所在的bundle名字
  51 + * @param targetClass 类和bundle的同级目录
  52 + * @return 返回UIImage
  53 + */
  54 +- (UIImage *)xw_getImageName:(NSString *)imageName bundleName:(NSString *)bundleName targetClass:(Class)targetClass{
  55 + NSBundle *bundle = [NSBundle bundleForClass:targetClass];
  56 + NSURL *url = [bundle URLForResource:bundleName withExtension:@"bundle"];
  57 + NSBundle *targetBundle = [NSBundle bundleWithURL:url];
  58 + UIImage *image = [UIImage imageNamed:imageName inBundle:targetBundle compatibleWithTraitCollection:nil];
  59 + return image?image:[UIImage imageNamed:imageName inBundle:[NSBundle mainBundle] compatibleWithTraitCollection:nil];
  60 +}
  61 +
  62 +@end
... ...
CNLiveLoginModule/Classes/Model/CNLiveLoginModel.h 0 → 100644
  1 +//
  2 +// CNLiveLoginModel.h
  3 +// CNLiveLoginModule
  4 +//
  5 +// Created by 153993236@qq.com on 11/12/2019.
  6 +// Copyright (c) 2019 153993236@qq.com. All rights reserved.
  7 +//
  8 +
  9 +#import <Foundation/Foundation.h>
  10 +
  11 +NS_ASSUME_NONNULL_BEGIN
  12 +
  13 +@interface CNLiveLoginModel : NSObject
  14 +
  15 +
  16 +@end
  17 +
  18 +NS_ASSUME_NONNULL_END
... ...
CNLiveLoginModule/Classes/Model/CNLiveLoginModel.m 0 → 100644
  1 +//
  2 +// CNLiveLoginModel.m
  3 +// CNLiveLoginModule
  4 +//
  5 +// Created by 153993236@qq.com on 11/12/2019.
  6 +// Copyright (c) 2019 153993236@qq.com. All rights reserved.
  7 +//
  8 +
  9 +#import "CNLiveLoginModel.h"
  10 +
  11 +@implementation CNLiveLoginModel
  12 +
  13 +@end
... ...
CNLiveLoginModule/Classes/Module/CNLiveLoginModule.h
1 1 //
2 2 // CNLiveLoginModule.h
3   -// CNLiveMineModule
  3 +// CNLiveLoginModule
4 4 //
5 5 // Created by 153993236@qq.com on 11/12/2019.
6 6 // Copyright (c) 2019 153993236@qq.com. All rights reserved.
... ...
CNLiveLoginModule/Classes/Module/CNLiveLoginModule.m
1 1 //
2 2 // CNLiveLoginModule.m
3   -// CNLiveMineModule
  3 +// CNLiveLoginModule
4 4 //
5 5 // Created by 153993236@qq.com on 11/12/2019.
6 6 // Copyright (c) 2019 153993236@qq.com. All rights reserved.
... ...
CNLiveLoginModule/Classes/Module/CNLiveLoginService.h
1 1 //
2 2 // CNLiveLoginService.h
3   -// CNLiveMineModule
  3 +// CNLiveLoginModule
4 4 //
5 5 // Created by 153993236@qq.com on 11/12/2019.
6 6 // Copyright (c) 2019 153993236@qq.com. All rights reserved.
... ...
CNLiveLoginModule/Classes/Module/CNLiveLoginService.m
1 1 //
2 2 // CNLiveLoginService.m
3   -// CNLiveMineModule
  3 +// CNLiveLoginModule
4 4 //
5 5 // Created by 153993236@qq.com on 11/12/2019.
6 6 // Copyright (c) 2019 153993236@qq.com. All rights reserved.
... ... @@ -8,6 +8,8 @@
8 8  
9 9 #import "CNLiveLoginService.h"
10 10 #import "CNLiveServices.h"
  11 +#import "CNLiveLoginController.h"
  12 +#import "CNUserInfoManager.h"
11 13  
12 14 @BeeHiveService(CNLiveLoginServiceProtocol,CNLiveLoginService)
13 15 @interface CNLiveLoginService ()<CNLiveLoginServiceProtocol>
... ... @@ -17,31 +19,39 @@
17 19 @implementation CNLiveLoginService
18 20  
19 21 - (UIViewController *)getLoginViewController{
20   - return [UIViewController new];
21   -
  22 + return [CNLiveLoginController new];
22 23 }
23 24  
24 25 - (void)pushToLoginViewController{
25   -
  26 + [self pushToLoginViewController:NO];
26 27 }
27 28  
28 29 - (void)pushToLoginViewController:(BOOL)isShow{
29   -
  30 + CNLiveLoginController *vc = [[CNLiveLoginController alloc]init];
  31 + vc.isShow = isShow;
  32 + vc.modalPresentationStyle = UIModalPresentationOverFullScreen;
  33 + vc.hidesBottomBarWhenPushed = YES;
  34 + [CNLivePageJumpManager pushViewController:vc];
30 35 }
31 36  
32 37 - (void)presentToLoginViewController{
33   - UIViewController *vc = [[UIViewController alloc]init];
34   - vc.modalPresentationStyle = UIModalPresentationOverFullScreen;
35   - vc.hidesBottomBarWhenPushed = YES;
36   - [CNLivePageJumpManager presentViewController:vc];
  38 + [self presentToLoginViewController:NO];
37 39 }
38 40  
39 41 - (void)presentToLoginViewController:(BOOL)isShow{
40   -
  42 + CNLiveLoginController *vc = [[CNLiveLoginController alloc]init];
  43 + vc.isShow = isShow;
  44 + vc.modalPresentationStyle = UIModalPresentationOverFullScreen;
  45 + vc.hidesBottomBarWhenPushed = YES;
  46 + [CNLivePageJumpManager presentViewController:vc];
41 47 }
42 48  
43 49 - (void)loginIfNeedWithCompleteBlock:(void (^)(BOOL))completeBlock{
44   -
  50 + if(CNUserShareManager.isLogin){
  51 + completeBlock(YES);
  52 + }else{
  53 + [self presentToLoginViewController:YES];
  54 + }
45 55 }
46 56  
47 57 @end
... ...
CNLiveLoginModule/Classes/View/CNLiveLoginHeaderView.h 0 → 100644
  1 +//
  2 +// CNLiveLoginHeaderView.h
  3 +// CNLiveMineModule
  4 +//
  5 +// Created by 153993236@qq.com on 11/12/2019.
  6 +// Copyright © 2019 153993236@qq.com. All rights reserved.
  7 +//
  8 +
  9 +#import <UIKit/UIKit.h>
  10 +
  11 +NS_ASSUME_NONNULL_BEGIN
  12 +
  13 +@interface CNLiveLoginHeaderView : UIView
  14 +- (void)layoutSubviews;
  15 +
  16 +@end
  17 +
  18 +NS_ASSUME_NONNULL_END
... ...
CNLiveLoginModule/Classes/View/CNLiveLoginHeaderView.m 0 → 100644
  1 +//
  2 +// CNLiveLoginHeaderView.m
  3 +// CNLiveMineModule
  4 +//
  5 +// Created by 153993236@qq.com on 11/12/2019.
  6 +// Copyright © 2019 153993236@qq.com. All rights reserved.
  7 +//
  8 +
  9 +#import "CNLiveLoginHeaderView.h"
  10 +#import <Masonry/Masonry.h>
  11 +#import <SDWebImage/SDWebImage.h>
  12 +#import "QMUIKit.h"
  13 +
  14 +#define HexColor(rgbValue) [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 green:((float)((rgbValue & 0xFF00) >> 8))/255.0 blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0]
  15 +
  16 +@interface CNLiveLoginHeaderView ()
  17 +@property (nonatomic, strong) UIImageView *bgView;
  18 +@property (nonatomic, strong) UIButton *witness;
  19 +
  20 +@property (nonatomic, strong) UIImageView *header;
  21 +@property (nonatomic, strong) UILabel *name;
  22 +@property (nonatomic, strong) UILabel *certification;
  23 +@property (nonatomic, strong) UILabel *address;
  24 +@property (nonatomic, strong) UIButton *sign;
  25 +
  26 +@end
  27 +
  28 +@implementation CNLiveLoginHeaderView
  29 +static const NSInteger margin = 20;
  30 +
  31 +- (instancetype)initWithFrame:(CGRect)frame{
  32 + self = [super initWithFrame:frame];
  33 + if(self){
  34 + self.userInteractionEnabled = YES;
  35 + self.backgroundColor = HexColor(0xf4f4f4);
  36 + [self createSubViews];
  37 + }
  38 + return self;
  39 +}
  40 +
  41 +- (void)dealloc {
  42 + NSLog(@"CNLiveLoginHeaderView -- dealloc");
  43 +
  44 +}
  45 +
  46 +- (void)createSubViews {
  47 + [self addSubview:self.bgView];
  48 + [self addSubview:self.witness];
  49 +
  50 + [self addSubview:self.header];
  51 + [self addSubview:self.name];
  52 + [self addSubview:self.certification];
  53 + [self addSubview:self.address];
  54 + [self addSubview:self.sign];
  55 +
  56 +}
  57 +
  58 +- (void)layoutSubviews{
  59 + [super layoutSubviews];
  60 + [_witness mas_remakeConstraints:^(MASConstraintMaker *make) {
  61 + make.left.equalTo(self.mas_left).with.offset(1.5*margin);
  62 + make.right.equalTo(self.mas_right).with.offset(-1.5*margin);
  63 + make.width.height.offset(60);
  64 + make.bottom.equalTo(self.mas_bottom).with.offset(-0.5*margin);
  65 +
  66 + }];
  67 +
  68 + [_bgView mas_remakeConstraints:^(MASConstraintMaker *make) {
  69 + make.left.equalTo(self.mas_left).with.offset(0);
  70 + make.right.equalTo(self.mas_right).with.offset(-0);
  71 + make.top.equalTo(self.mas_top).with.offset(0);
  72 + make.bottom.equalTo(self.witness.mas_centerY).with.offset(0.5*margin);
  73 +
  74 + }];
  75 +
  76 + [_header mas_remakeConstraints:^(MASConstraintMaker *make) {
  77 + make.left.equalTo(self.mas_left).with.offset(margin);
  78 + make.centerY.equalTo(self.bgView.mas_centerY).with.offset(0);
  79 + make.width.height.offset(60);
  80 +
  81 + }];
  82 +
  83 + [_certification mas_remakeConstraints:^(MASConstraintMaker *make) {
  84 + make.centerY.equalTo(self.header.mas_centerY);
  85 + make.left.equalTo(self.header.mas_right).with.offset(margin/2.0);
  86 + make.height.offset(30);
  87 +
  88 + }];
  89 +
  90 + [_name mas_remakeConstraints:^(MASConstraintMaker *make) {
  91 + make.bottom.equalTo(self.certification.mas_top);
  92 + make.left.equalTo(self.certification.mas_left);
  93 + make.right.equalTo(self.bgView.mas_right).with.offset(-margin);
  94 + make.height.equalTo(self.certification.mas_height);
  95 +
  96 + }];
  97 +
  98 + [_address mas_remakeConstraints:^(MASConstraintMaker *make) {
  99 + make.top.equalTo(self.certification.mas_bottom);
  100 + make.left.equalTo(self.name.mas_left);
  101 + make.right.equalTo(self.name.mas_right);
  102 + make.height.equalTo(self.name.mas_height);
  103 +
  104 + }];
  105 +
  106 + [_sign mas_remakeConstraints:^(MASConstraintMaker *make) {
  107 + make.right.equalTo(self.mas_right).with.offset(0);
  108 + make.centerY.equalTo(self.header.mas_centerY).with.offset(0);
  109 + make.width.mas_equalTo(105);
  110 + make.height.mas_equalTo(32);
  111 +
  112 + }];
  113 +}
  114 +/*
  115 + // Only override drawRect: if you perform custom drawing.
  116 + // An empty implementation adversely affects performance during animation.
  117 + - (void)drawRect:(CGRect)rect {
  118 + // Drawing code
  119 + }
  120 + */
  121 +#pragma mark - Private Methods
  122 +- (NSMutableAttributedString *)createAttributedImageName:(NSString *)imageName string:(NSString *)string isFront:(BOOL)isFront{
  123 + if(isFront){
  124 + string = [NSString stringWithFormat:@" %@",string];
  125 + }
  126 + // 1.创建一个富文本
  127 + NSMutableAttributedString *attri = [[NSMutableAttributedString alloc] initWithString:string];
  128 + // 修改富文本中的不同文字的样式
  129 +// [attri addAttribute:NSForegroundColorAttributeName value:[UIColor whiteColor] range:NSMakeRange(0, string.length)];
  130 +// [attri addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:14] range:NSMakeRange(0, string.length)];
  131 + // 2.添加表情图片
  132 + NSTextAttachment *attch = [[NSTextAttachment alloc] init];
  133 + // 表情图片
  134 + UIImage *xw_image = [self xw_getImageName:imageName bundleName:@"CNLiveMineModule" targetClass:[CNLiveLoginHeaderView class]];
  135 + attch.image = xw_image;
  136 + if(isFront){
  137 + // 设置图片大小
  138 + attch.bounds = CGRectMake(0, -1.5, 10, 12);
  139 + // 创建带有图片的富文本
  140 + NSAttributedString *str = [NSAttributedString attributedStringWithAttachment:attch];
  141 + [attri insertAttributedString:str atIndex:0];// 插入某个位置
  142 + }else{
  143 + // 设置图片大小
  144 + attch.bounds = CGRectMake(10, -2, 15, 15);
  145 + // 创建带有图片的富文本
  146 + NSAttributedString *str = [NSAttributedString attributedStringWithAttachment:attch];
  147 + [attri insertAttributedString:str atIndex:string.length];// 插入某个位置
  148 +
  149 + }
  150 + return attri;
  151 +
  152 +}
  153 +- (NSMutableAttributedString *)createAttributedImages:(NSArray *)images {
  154 + // 1.创建一个富文本
  155 + NSMutableAttributedString *attri = [[NSMutableAttributedString alloc] initWithString:@""];
  156 + for(NSString *image in images){
  157 + // 2.添加表情图片
  158 + NSTextAttachment *attch = [[NSTextAttachment alloc] init];
  159 + // 表情图片
  160 + UIImage *xw_image = [self xw_getImageName:image bundleName:@"CNLiveMineModule" targetClass:[CNLiveLoginHeaderView class]];
  161 + attch.image = xw_image;
  162 + // 创建带有图片的富文本
  163 + NSAttributedString *str = [NSAttributedString attributedStringWithAttachment:attch];
  164 + NSAttributedString *space = [[NSAttributedString alloc]initWithString:@" "];
  165 +
  166 + [attri insertAttributedString:space atIndex:0];
  167 + [attri insertAttributedString:str atIndex:0];// 插入某个位置
  168 +
  169 + }
  170 + return attri;
  171 +
  172 +}
  173 +
  174 +#pragma mark - 懒加载
  175 +- (UIButton *)witness {
  176 + if (!_witness) {
  177 + _witness = [UIButton buttonWithType:UIButtonTypeCustom];
  178 + UIImage *xw_image = [self xw_getImageName:@"mine_observer" bundleName:@"CNLiveMineModule" targetClass:[CNLiveLoginHeaderView class]];
  179 + _witness.imageView.contentMode = UIViewContentModeScaleAspectFit;
  180 + [_witness setImage:xw_image forState:UIControlStateNormal];
  181 + _witness.adjustsImageWhenHighlighted = NO;
  182 + [_witness addTarget:self action:@selector(witnessDidClicked:) forControlEvents:UIControlEventTouchUpInside];
  183 + }
  184 + return _witness;
  185 +}
  186 +- (UIImageView *)bgView {
  187 + if (!_bgView) {
  188 + _bgView = [[UIImageView alloc] init];
  189 + _bgView.userInteractionEnabled = YES;
  190 + UIImage *xw_image = [self xw_getImageName:@"mine_bg" bundleName:@"CNLiveMineModule" targetClass:[CNLiveLoginHeaderView class]];
  191 + _bgView.image = xw_image;
  192 + }
  193 + return _bgView;
  194 +}
  195 +- (UIImageView *)header {
  196 + if (!_header) {
  197 + _header = [[UIImageView alloc] init];
  198 + _header.userInteractionEnabled = YES;
  199 + _header.layer.masksToBounds = YES;
  200 + _header.layer.cornerRadius = 30;
  201 + UIImage *xw_image = [self xw_getImageName:@"default_avatar_y" bundleName:@"CNLiveMineModule" targetClass:[CNLiveLoginHeaderView class]];
  202 + [_header sd_setImageWithURL:[NSURL URLWithString:@"头像"] placeholderImage:xw_image];
  203 + __weak typeof(self) weakSelf = self;
  204 +// [_header addGestureTapEventHandle:^(id _Nonnull sender, UITapGestureRecognizer * _Nonnull gestureRecognizer) {
  205 +// __strong typeof(weakSelf) strongSelf = weakSelf;
  206 +// if(!strongSelf) return ;
  207 +// if (strongSelf.delegate && [strongSelf.delegate respondsToSelector:@selector(headerView:pushToController:)]) {
  208 +// [strongSelf.delegate headerView:strongSelf pushToController:CNLiveMineHeaderViewTypeUerInfo];
  209 +// }
  210 +// }];
  211 + }
  212 + return _header;
  213 +}
  214 +
  215 +- (UILabel *)name {
  216 + if (!_name) {
  217 + _name = [[UILabel alloc] init];
  218 + _name.userInteractionEnabled = YES;
  219 + _name.numberOfLines = 1;
  220 + _name.textColor = [UIColor whiteColor];
  221 + _name.font = [UIFont systemFontOfSize:16];
  222 + _name.attributedText = [self createAttributedImageName:@"mine_code" string:@"张晓文" isFront:NO];
  223 + __weak typeof(self) weakSelf = self;
  224 +// [_name addGestureTapEventHandle:^(id _Nonnull sender, UITapGestureRecognizer * _Nonnull gestureRecognizer) {
  225 +// __strong typeof(weakSelf) strongSelf = weakSelf;
  226 +// if(!strongSelf) return ;
  227 +// if (strongSelf.delegate && [strongSelf.delegate respondsToSelector:@selector(headerView:pushToController:)]) {
  228 +// [strongSelf.delegate headerView:strongSelf pushToController:CNLiveMineHeaderViewTypeCode];
  229 +// }
  230 +// }];
  231 +
  232 + }
  233 + return _name;
  234 +}
  235 +- (UILabel *)certification {
  236 + if (!_certification) {
  237 + _certification = [[UILabel alloc] init];
  238 + _certification.numberOfLines = 1;
  239 + _certification.textColor = [UIColor whiteColor];
  240 + _certification.font = [UIFont systemFontOfSize:16];
  241 + _certification.attributedText = [self createAttributedImages:@[@"mine_overbadge",@"mine_common", @"mine_wjj_certification"]];
  242 + }
  243 + return _certification;
  244 +}
  245 +- (UILabel *)address {
  246 + if (!_address) {
  247 + _address = [[UILabel alloc] init];
  248 + _address.numberOfLines = 1;
  249 + _address.textColor = [UIColor colorWithRed:140/255.0 green:140/255.0 blue:142/255.0 alpha:1.0];
  250 + _address.font = [UIFont systemFontOfSize:14];
  251 + _address.attributedText = [self createAttributedImageName:@"mine_location" string:@"北京海淀区花园桥地铁站中外文大厦10层" isFront:YES];
  252 + }
  253 + return _address;
  254 +}
  255 +- (UIButton *)sign {
  256 + if (!_sign) {
  257 + _sign = [UIButton buttonWithType:UIButtonTypeCustom];
  258 + _sign.frame = CGRectMake(0, 0, 105, 32);
  259 + _sign.backgroundColor = [[UIColor whiteColor] colorWithAlphaComponent:0.2];
  260 + [_sign setTitle:@"签到赚积分" forState:UIControlStateNormal];
  261 + _sign.titleLabel.font = [UIFont systemFontOfSize:13.0];
  262 + [_sign setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
  263 + UIImage *xw_image = [self xw_getImageName:@"sign_in_soccer" bundleName:@"CNLiveMineModule" targetClass:[CNLiveLoginHeaderView class]];
  264 + [_sign setImage:xw_image forState:UIControlStateNormal];
  265 + [_sign addTarget:self action:@selector(signDidClicked:) forControlEvents:UIControlEventTouchUpInside];
  266 + UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:_sign.layer.bounds byRoundingCorners:UIRectCornerBottomLeft | UIRectCornerTopLeft cornerRadii:CGSizeMake(16, 16)];
  267 + CAShapeLayer *maskLayer = [CAShapeLayer layer];
  268 + maskLayer.frame = _sign.bounds;
  269 + maskLayer.path = maskPath.CGPath;
  270 + _sign.layer.mask = maskLayer;
  271 + }
  272 + return _sign;
  273 +}
  274 +
  275 +#pragma mark - 响应方法
  276 +- (void)signDidClicked:(UIButton *)btn{
  277 +
  278 +}
  279 +
  280 +- (void)witnessDidClicked:(UIButton *)btn{
  281 +
  282 +}
  283 +
  284 +/**
  285 + * 创建图片
  286 + *
  287 + * @param imageName 图片名字
  288 + * @param bundleName 图片所在的bundle名字
  289 + * @param targetClass 类和bundle的同级目录
  290 + * @return 返回UIImage
  291 + */
  292 +- (UIImage *)xw_getImageName:(NSString *)imageName bundleName:(NSString *)bundleName targetClass:(Class)targetClass{
  293 + NSBundle *bundle = [NSBundle bundleForClass:targetClass];
  294 + NSURL *url = [bundle URLForResource:bundleName withExtension:@"bundle"];
  295 + NSBundle *targetBundle = [NSBundle bundleWithURL:url];
  296 + UIImage *image = [UIImage imageNamed:imageName inBundle:targetBundle compatibleWithTraitCollection:nil];
  297 + return image?image:[UIImage imageNamed:imageName inBundle:[NSBundle mainBundle] compatibleWithTraitCollection:nil];
  298 +
  299 +}
  300 +
  301 +@end
... ...
Example/CNLiveLoginModule.xcodeproj/project.pbxproj
... ... @@ -349,12 +349,24 @@
349 349 "${BUILT_PRODUCTS_DIR}/CNLiveBeeHive/CNLiveBeeHive.framework",
350 350 "${BUILT_PRODUCTS_DIR}/CNLiveLoginModule/CNLiveLoginModule.framework",
351 351 "${BUILT_PRODUCTS_DIR}/CNLiveServices/CNLiveServices.framework",
  352 + "${BUILT_PRODUCTS_DIR}/CNLiveTripartiteManagement/CNLiveTripartiteManagement.framework",
  353 + "${BUILT_PRODUCTS_DIR}/CNLiveUserManagement/CNLiveUserManagement.framework",
  354 + "${BUILT_PRODUCTS_DIR}/MJExtension/MJExtension.framework",
  355 + "${BUILT_PRODUCTS_DIR}/Masonry/Masonry.framework",
  356 + "${BUILT_PRODUCTS_DIR}/QMUIKit/QMUIKit.framework",
  357 + "${BUILT_PRODUCTS_DIR}/SDWebImage/SDWebImage.framework",
352 358 );
353 359 name = "[CP] Embed Pods Frameworks";
354 360 outputPaths = (
355 361 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveBeeHive.framework",
356 362 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveLoginModule.framework",
357 363 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveServices.framework",
  364 + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveTripartiteManagement.framework",
  365 + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveUserManagement.framework",
  366 + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MJExtension.framework",
  367 + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Masonry.framework",
  368 + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/QMUIKit.framework",
  369 + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImage.framework",
358 370 );
359 371 runOnlyForDeploymentPostprocessing = 0;
360 372 shellPath = /bin/sh;
... ...
Example/CNLiveLoginModule/CNLIVEAppDelegate.m
... ... @@ -7,12 +7,18 @@
7 7 //
8 8  
9 9 #import "CNLIVEAppDelegate.h"
  10 +#import "CNLiveLoginController.h"
10 11  
11 12 @implementation CNLIVEAppDelegate
12 13  
13 14 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
14 15 {
15 16 // Override point for customization after application launch.
  17 + self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];//UIScreen mainScreen].bounds个人理解获取屏幕的硬件信息然后设置尺寸大小
  18 + CNLiveLoginController *vc = [[CNLiveLoginController alloc] init];
  19 + UINavigationController *nav = [[UINavigationController alloc]initWithRootViewController:vc];
  20 + self.window.rootViewController = nav;//设置根视图控制器
  21 + [self.window makeKeyAndVisible];//设置成为
16 22 return YES;
17 23 }
18 24  
... ...