Commit bd57d55accf43fb885810edd606ccd3a50624ae8
1 parent
6f06ed3c
Exists in
newLive
首页排行界面搭建及数据填充
Showing
7 changed files
with
426 additions
and
78 deletions
Show diff stats
YouerLiveVideo/YouerLiveVideo.xcodeproj/project.pbxproj
@@ -157,6 +157,7 @@ | @@ -157,6 +157,7 @@ | ||
157 | BF7B75A71E305A6D0011D5C7 /* UIScrollView+MJExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = BF7B75911E305A6D0011D5C7 /* UIScrollView+MJExtension.m */; }; | 157 | BF7B75A71E305A6D0011D5C7 /* UIScrollView+MJExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = BF7B75911E305A6D0011D5C7 /* UIScrollView+MJExtension.m */; }; |
158 | BF7B75A81E305A6D0011D5C7 /* UIScrollView+MJRefresh.m in Sources */ = {isa = PBXBuildFile; fileRef = BF7B75931E305A6D0011D5C7 /* UIScrollView+MJRefresh.m */; }; | 158 | BF7B75A81E305A6D0011D5C7 /* UIScrollView+MJRefresh.m in Sources */ = {isa = PBXBuildFile; fileRef = BF7B75931E305A6D0011D5C7 /* UIScrollView+MJRefresh.m */; }; |
159 | BF7B75A91E305A6D0011D5C7 /* UIView+MJExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = BF7B75951E305A6D0011D5C7 /* UIView+MJExtension.m */; }; | 159 | BF7B75A91E305A6D0011D5C7 /* UIView+MJExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = BF7B75951E305A6D0011D5C7 /* UIView+MJExtension.m */; }; |
160 | + BF8E52EE1ECFD16000E472E8 /* RankingTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF8E52ED1ECFD16000E472E8 /* RankingTableViewController.swift */; }; | ||
160 | BFBB83A91ECAE35E008B404B /* LeadViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFBB83A81ECAE35E008B404B /* LeadViewController.swift */; }; | 161 | BFBB83A91ECAE35E008B404B /* LeadViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFBB83A81ECAE35E008B404B /* LeadViewController.swift */; }; |
161 | BFBB83D11ECBEB4E008B404B /* JYScrollItem.m in Sources */ = {isa = PBXBuildFile; fileRef = BFBB83CC1ECBEB4E008B404B /* JYScrollItem.m */; }; | 162 | BFBB83D11ECBEB4E008B404B /* JYScrollItem.m in Sources */ = {isa = PBXBuildFile; fileRef = BFBB83CC1ECBEB4E008B404B /* JYScrollItem.m */; }; |
162 | BFBB83D21ECBEB4E008B404B /* JYScrollItemModel.m in Sources */ = {isa = PBXBuildFile; fileRef = BFBB83CE1ECBEB4E008B404B /* JYScrollItemModel.m */; }; | 163 | BFBB83D21ECBEB4E008B404B /* JYScrollItemModel.m in Sources */ = {isa = PBXBuildFile; fileRef = BFBB83CE1ECBEB4E008B404B /* JYScrollItemModel.m */; }; |
@@ -493,6 +494,7 @@ | @@ -493,6 +494,7 @@ | ||
493 | BF7B75931E305A6D0011D5C7 /* UIScrollView+MJRefresh.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIScrollView+MJRefresh.m"; sourceTree = "<group>"; }; | 494 | BF7B75931E305A6D0011D5C7 /* UIScrollView+MJRefresh.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIScrollView+MJRefresh.m"; sourceTree = "<group>"; }; |
494 | BF7B75941E305A6D0011D5C7 /* UIView+MJExtension.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIView+MJExtension.h"; sourceTree = "<group>"; }; | 495 | BF7B75941E305A6D0011D5C7 /* UIView+MJExtension.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIView+MJExtension.h"; sourceTree = "<group>"; }; |
495 | BF7B75951E305A6D0011D5C7 /* UIView+MJExtension.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIView+MJExtension.m"; sourceTree = "<group>"; }; | 496 | BF7B75951E305A6D0011D5C7 /* UIView+MJExtension.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIView+MJExtension.m"; sourceTree = "<group>"; }; |
497 | + BF8E52ED1ECFD16000E472E8 /* RankingTableViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RankingTableViewController.swift; sourceTree = "<group>"; }; | ||
496 | BFBB83A81ECAE35E008B404B /* LeadViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LeadViewController.swift; sourceTree = "<group>"; }; | 498 | BFBB83A81ECAE35E008B404B /* LeadViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LeadViewController.swift; sourceTree = "<group>"; }; |
497 | BFBB83CB1ECBEB4E008B404B /* JYScrollItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JYScrollItem.h; sourceTree = "<group>"; }; | 499 | BFBB83CB1ECBEB4E008B404B /* JYScrollItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JYScrollItem.h; sourceTree = "<group>"; }; |
498 | BFBB83CC1ECBEB4E008B404B /* JYScrollItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JYScrollItem.m; sourceTree = "<group>"; }; | 500 | BFBB83CC1ECBEB4E008B404B /* JYScrollItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JYScrollItem.m; sourceTree = "<group>"; }; |
@@ -595,6 +597,7 @@ | @@ -595,6 +597,7 @@ | ||
595 | isa = PBXGroup; | 597 | isa = PBXGroup; |
596 | children = ( | 598 | children = ( |
597 | BF682F1D1ECE8772007632CA /* MainHomeTableViewController.swift */, | 599 | BF682F1D1ECE8772007632CA /* MainHomeTableViewController.swift */, |
600 | + BF8E52ED1ECFD16000E472E8 /* RankingTableViewController.swift */, | ||
598 | 5904FC541ECA8BCB00E631FF /* HomePage.storyboard */, | 601 | 5904FC541ECA8BCB00E631FF /* HomePage.storyboard */, |
599 | ); | 602 | ); |
600 | path = HomePage; | 603 | path = HomePage; |
@@ -1545,6 +1548,7 @@ | @@ -1545,6 +1548,7 @@ | ||
1545 | BF7B75A11E305A6D0011D5C7 /* MJRefreshGifHeader.m in Sources */, | 1548 | BF7B75A11E305A6D0011D5C7 /* MJRefreshGifHeader.m in Sources */, |
1546 | 599B2CE31DE52F7E00B4F7FD /* UMSocialUIManager.m in Sources */, | 1549 | 599B2CE31DE52F7E00B4F7FD /* UMSocialUIManager.m in Sources */, |
1547 | BF25DFF91DDAA36A003EC0C1 /* NSImage+WebCache.m in Sources */, | 1550 | BF25DFF91DDAA36A003EC0C1 /* NSImage+WebCache.m in Sources */, |
1551 | + BF8E52EE1ECFD16000E472E8 /* RankingTableViewController.swift in Sources */, | ||
1548 | 59F8014F1DD2C7AD000A78B0 /* AppDelegate.swift in Sources */, | 1552 | 59F8014F1DD2C7AD000A78B0 /* AppDelegate.swift in Sources */, |
1549 | BF25DFED1DDAA36A003EC0C1 /* ResponseSerialization.swift in Sources */, | 1553 | BF25DFED1DDAA36A003EC0C1 /* ResponseSerialization.swift in Sources */, |
1550 | BF25E0031DDAA36A003EC0C1 /* UIImage+GIF.m in Sources */, | 1554 | BF25E0031DDAA36A003EC0C1 /* UIImage+GIF.m in Sources */, |
YouerLiveVideo/YouerLiveVideo/controllers/HomePage/HomePage.storyboard
1 | -<?xml version="1.0" encoding="UTF-8"?> | ||
2 | -<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="11762" systemVersion="16A323" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES"> | 1 | +<?xml version="1.0" encoding="UTF-8" standalone="no"?> |
2 | +<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="11762" systemVersion="15G1217" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES"> | ||
3 | <device id="retina4_7" orientation="portrait"> | 3 | <device id="retina4_7" orientation="portrait"> |
4 | <adaptation id="fullscreen"/> | 4 | <adaptation id="fullscreen"/> |
5 | </device> | 5 | </device> |
6 | <dependencies> | 6 | <dependencies> |
7 | <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="11757"/> | 7 | <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="11757"/> |
8 | + <capability name="Constraints to layout margins" minToolsVersion="6.0"/> | ||
8 | <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> | 9 | <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> |
9 | </dependencies> | 10 | </dependencies> |
10 | <scenes> | 11 | <scenes> |
11 | - <!--View Controller--> | ||
12 | - <scene sceneID="eHj-Hl-wWx"> | 12 | + <!--排行--> |
13 | + <scene sceneID="dY5-uz-H10"> | ||
13 | <objects> | 14 | <objects> |
14 | - <viewController id="LjZ-4M-CWC" sceneMemberID="viewController"> | ||
15 | - <layoutGuides> | ||
16 | - <viewControllerLayoutGuide type="top" id="yeh-XP-HPd"/> | ||
17 | - <viewControllerLayoutGuide type="bottom" id="vkl-Ah-CiJ"/> | ||
18 | - </layoutGuides> | ||
19 | - <view key="view" contentMode="scaleToFill" id="Hyp-9a-Mci"> | 15 | + <tableViewController storyboardIdentifier="RankingTableViewController" automaticallyAdjustsScrollViewInsets="NO" hidesBottomBarWhenPushed="YES" id="xTw-6t-Upd" customClass="RankingTableViewController" customModule="YouerLiveVideo" customModuleProvider="target" sceneMemberID="viewController"> |
16 | + <tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" dataMode="prototypes" style="plain" separatorStyle="none" rowHeight="339" sectionHeaderHeight="28" sectionFooterHeight="28" id="o1U-D1-qqQ"> | ||
20 | <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> | 17 | <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> |
21 | <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> | 18 | <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> |
22 | - <subviews> | ||
23 | - <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="157" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="YOa-J8-2UM"> | ||
24 | - <rect key="frame" x="0.0" y="20" width="375" height="647"/> | ||
25 | - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
26 | - <prototypes> | ||
27 | - <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" rowHeight="157" id="SLW-Wm-iau"> | ||
28 | - <rect key="frame" x="0.0" y="28" width="375" height="157"/> | ||
29 | - <autoresizingMask key="autoresizingMask"/> | ||
30 | - <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="SLW-Wm-iau" id="QXN-J0-KgA"> | ||
31 | - <rect key="frame" x="0.0" y="0.0" width="375" height="157"/> | ||
32 | - <autoresizingMask key="autoresizingMask"/> | 19 | + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> |
20 | + <prototypes> | ||
21 | + <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" reuseIdentifier="ItemTableViewCell" rowHeight="339" id="cns-vb-pIQ" customClass="ItemTableViewCell" customModule="YouerLiveVideo" customModuleProvider="target"> | ||
22 | + <rect key="frame" x="0.0" y="28" width="375" height="339"/> | ||
23 | + <autoresizingMask key="autoresizingMask"/> | ||
24 | + <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="cns-vb-pIQ" id="88M-wr-UJ8"> | ||
25 | + <rect key="frame" x="0.0" y="0.0" width="375" height="339"/> | ||
26 | + <autoresizingMask key="autoresizingMask"/> | ||
27 | + <subviews> | ||
28 | + <label hidden="YES" opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="学校排行" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="EZa-z2-arr"> | ||
29 | + <rect key="frame" x="8" y="15" width="65.5" height="19.5"/> | ||
30 | + <fontDescription key="fontDescription" type="system" pointSize="16"/> | ||
31 | + <nil key="textColor"/> | ||
32 | + <nil key="highlightedColor"/> | ||
33 | + </label> | ||
34 | + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ckB-W3-VJE"> | ||
35 | + <rect key="frame" x="0.0" y="44" width="375" height="44"/> | ||
33 | <subviews> | 36 | <subviews> |
34 | - <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" dataMode="prototypes" translatesAutoresizingMaskIntoConstraints="NO" id="PAj-p1-GN4"> | ||
35 | - <rect key="frame" x="8" y="4" width="359" height="148.5"/> | ||
36 | - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
37 | - <collectionViewFlowLayout key="collectionViewLayout" minimumLineSpacing="0.0" minimumInteritemSpacing="0.0" id="Yxz-uf-KtO"> | ||
38 | - <size key="itemSize" width="111" height="147"/> | ||
39 | - <size key="headerReferenceSize" width="0.0" height="0.0"/> | ||
40 | - <size key="footerReferenceSize" width="0.0" height="0.0"/> | ||
41 | - <inset key="sectionInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/> | ||
42 | - </collectionViewFlowLayout> | ||
43 | - <cells> | ||
44 | - <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" id="Azu-vg-rrB"> | ||
45 | - <rect key="frame" x="0.0" y="0.0" width="111" height="147"/> | ||
46 | - <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> | ||
47 | - <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> | ||
48 | - <rect key="frame" x="0.0" y="0.0" width="111" height="147"/> | ||
49 | - <autoresizingMask key="autoresizingMask"/> | ||
50 | - </view> | ||
51 | - </collectionViewCell> | ||
52 | - </cells> | ||
53 | - </collectionView> | 37 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="综合排名" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="SaW-7O-OkT"> |
38 | + <rect key="frame" x="18" y="13" width="61.5" height="18"/> | ||
39 | + <fontDescription key="fontDescription" type="system" pointSize="15"/> | ||
40 | + <nil key="textColor"/> | ||
41 | + <nil key="highlightedColor"/> | ||
42 | + </label> | ||
43 | + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="botoom_image" translatesAutoresizingMaskIntoConstraints="NO" id="NNQ-07-hic"> | ||
44 | + <rect key="frame" x="352" y="15" width="15" height="15"/> | ||
45 | + <constraints> | ||
46 | + <constraint firstAttribute="height" constant="15" id="J3l-xy-BQF"/> | ||
47 | + <constraint firstAttribute="width" constant="15" id="uel-30-fcR"/> | ||
48 | + </constraints> | ||
49 | + </imageView> | ||
50 | + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="ss9-IN-p7o"> | ||
51 | + <rect key="frame" x="331" y="0.0" width="44" height="44"/> | ||
52 | + <constraints> | ||
53 | + <constraint firstAttribute="width" constant="44" id="i7f-rP-uMp"/> | ||
54 | + </constraints> | ||
55 | + <connections> | ||
56 | + <action selector="openOrCloseAction:" destination="cns-vb-pIQ" eventType="touchUpInside" id="pnJ-fx-YyR"/> | ||
57 | + </connections> | ||
58 | + </button> | ||
54 | </subviews> | 59 | </subviews> |
60 | + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
55 | <constraints> | 61 | <constraints> |
56 | - <constraint firstItem="PAj-p1-GN4" firstAttribute="top" secondItem="QXN-J0-KgA" secondAttribute="top" constant="4" id="5zz-bd-O6i"/> | ||
57 | - <constraint firstItem="PAj-p1-GN4" firstAttribute="leading" secondItem="QXN-J0-KgA" secondAttribute="leading" constant="8" id="8MC-Zz-u5f"/> | ||
58 | - <constraint firstAttribute="trailing" secondItem="PAj-p1-GN4" secondAttribute="trailing" constant="8" id="sTQ-kz-OzQ"/> | ||
59 | - <constraint firstAttribute="bottom" secondItem="PAj-p1-GN4" secondAttribute="bottom" constant="4" id="w43-em-me9"/> | 62 | + <constraint firstItem="NNQ-07-hic" firstAttribute="centerY" secondItem="ckB-W3-VJE" secondAttribute="centerY" id="0Rf-nE-jAo"/> |
63 | + <constraint firstAttribute="trailing" secondItem="NNQ-07-hic" secondAttribute="trailing" constant="8" id="6G8-VB-s2n"/> | ||
64 | + <constraint firstAttribute="bottom" secondItem="ss9-IN-p7o" secondAttribute="bottom" id="PLC-c5-EFr"/> | ||
65 | + <constraint firstAttribute="height" constant="44" id="Wyr-GU-aaT"/> | ||
66 | + <constraint firstAttribute="trailing" secondItem="ss9-IN-p7o" secondAttribute="trailing" id="aAO-V3-sgD"/> | ||
67 | + <constraint firstItem="ss9-IN-p7o" firstAttribute="top" secondItem="ckB-W3-VJE" secondAttribute="top" id="bxF-ra-1Fc"/> | ||
68 | + <constraint firstItem="SaW-7O-OkT" firstAttribute="centerY" secondItem="ckB-W3-VJE" secondAttribute="centerY" id="ne0-jg-T5L"/> | ||
69 | + <constraint firstItem="SaW-7O-OkT" firstAttribute="leading" secondItem="ckB-W3-VJE" secondAttribute="leading" constant="18" id="wS7-H2-6Hb"/> | ||
60 | </constraints> | 70 | </constraints> |
61 | - </tableViewCellContentView> | ||
62 | - </tableViewCell> | ||
63 | - </prototypes> | ||
64 | - </tableView> | ||
65 | - </subviews> | ||
66 | - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
67 | - <constraints> | ||
68 | - <constraint firstItem="YOa-J8-2UM" firstAttribute="leading" secondItem="Hyp-9a-Mci" secondAttribute="leading" id="7D9-Dd-nwr"/> | ||
69 | - <constraint firstItem="vkl-Ah-CiJ" firstAttribute="top" secondItem="YOa-J8-2UM" secondAttribute="bottom" id="KeN-hy-x2G"/> | ||
70 | - <constraint firstItem="YOa-J8-2UM" firstAttribute="top" secondItem="yeh-XP-HPd" secondAttribute="bottom" id="d83-an-LAU"/> | ||
71 | - <constraint firstAttribute="trailing" secondItem="YOa-J8-2UM" secondAttribute="trailing" id="kit-ZG-l6n"/> | ||
72 | - </constraints> | ||
73 | - </view> | ||
74 | - </viewController> | ||
75 | - <placeholder placeholderIdentifier="IBFirstResponder" id="AHa-9V-Fv6" userLabel="First Responder" sceneMemberID="firstResponder"/> | 71 | + </view> |
72 | + <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" scrollEnabled="NO" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" dataMode="prototypes" style="plain" separatorStyle="none" rowHeight="44" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="M9F-0f-7Zj"> | ||
73 | + <rect key="frame" x="0.0" y="88" width="375" height="251"/> | ||
74 | + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
75 | + <prototypes> | ||
76 | + <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" restorationIdentifier="cell" selectionStyle="default" indentationWidth="10" reuseIdentifier="cell" id="deq-A6-QAT"> | ||
77 | + <rect key="frame" x="0.0" y="28" width="375" height="44"/> | ||
78 | + <autoresizingMask key="autoresizingMask"/> | ||
79 | + <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="deq-A6-QAT" id="jel-9N-Twh"> | ||
80 | + <rect key="frame" x="0.0" y="0.0" width="375" height="44"/> | ||
81 | + <autoresizingMask key="autoresizingMask"/> | ||
82 | + </tableViewCellContentView> | ||
83 | + </tableViewCell> | ||
84 | + </prototypes> | ||
85 | + <connections> | ||
86 | + <outlet property="dataSource" destination="cns-vb-pIQ" id="UYa-xu-7SP"/> | ||
87 | + <outlet property="delegate" destination="cns-vb-pIQ" id="XE2-JN-ndb"/> | ||
88 | + </connections> | ||
89 | + </tableView> | ||
90 | + </subviews> | ||
91 | + <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/> | ||
92 | + <constraints> | ||
93 | + <constraint firstItem="M9F-0f-7Zj" firstAttribute="leading" secondItem="88M-wr-UJ8" secondAttribute="leading" id="05H-J5-3ft"/> | ||
94 | + <constraint firstItem="ckB-W3-VJE" firstAttribute="leading" secondItem="88M-wr-UJ8" secondAttribute="leading" id="Llv-Cj-qUv"/> | ||
95 | + <constraint firstItem="EZa-z2-arr" firstAttribute="top" secondItem="88M-wr-UJ8" secondAttribute="topMargin" constant="7" id="Y6P-C4-Lnh"/> | ||
96 | + <constraint firstItem="ckB-W3-VJE" firstAttribute="top" secondItem="88M-wr-UJ8" secondAttribute="top" constant="44" id="YYa-p3-V5Z"/> | ||
97 | + <constraint firstAttribute="trailing" secondItem="M9F-0f-7Zj" secondAttribute="trailing" id="Zee-lj-9ac"/> | ||
98 | + <constraint firstAttribute="bottom" secondItem="M9F-0f-7Zj" secondAttribute="bottom" id="gJP-sa-9DJ"/> | ||
99 | + <constraint firstAttribute="trailing" secondItem="ckB-W3-VJE" secondAttribute="trailing" id="grJ-oO-BaR"/> | ||
100 | + <constraint firstAttribute="leadingMargin" secondItem="EZa-z2-arr" secondAttribute="leading" id="pPi-1h-WTn"/> | ||
101 | + <constraint firstItem="M9F-0f-7Zj" firstAttribute="top" secondItem="ckB-W3-VJE" secondAttribute="bottom" id="seG-Ge-GIf"/> | ||
102 | + </constraints> | ||
103 | + </tableViewCellContentView> | ||
104 | + <connections> | ||
105 | + <outlet property="sectionTitleLabel" destination="EZa-z2-arr" id="riK-aS-fgl"/> | ||
106 | + <outlet property="subTableView" destination="M9F-0f-7Zj" id="TzF-ki-ccn"/> | ||
107 | + <outlet property="tableViewButtom" destination="gJP-sa-9DJ" id="hjD-Q3-nGW"/> | ||
108 | + <outlet property="titleImageView" destination="NNQ-07-hic" id="FDL-Do-NZC"/> | ||
109 | + <outlet property="titleLabel" destination="SaW-7O-OkT" id="sqD-nr-S3a"/> | ||
110 | + <outlet property="titleViewTop" destination="YYa-p3-V5Z" id="hok-Ka-n3E"/> | ||
111 | + </connections> | ||
112 | + </tableViewCell> | ||
113 | + </prototypes> | ||
114 | + <sections/> | ||
115 | + <connections> | ||
116 | + <outlet property="dataSource" destination="xTw-6t-Upd" id="k4J-Ub-G0Z"/> | ||
117 | + <outlet property="delegate" destination="xTw-6t-Upd" id="9YG-mr-onA"/> | ||
118 | + </connections> | ||
119 | + </tableView> | ||
120 | + <navigationItem key="navigationItem" title="排行" id="JPt-wk-Pdj"/> | ||
121 | + <simulatedNavigationBarMetrics key="simulatedTopBarMetrics" prompted="NO"/> | ||
122 | + </tableViewController> | ||
123 | + <placeholder placeholderIdentifier="IBFirstResponder" id="mqx-56-Al8" userLabel="First Responder" sceneMemberID="firstResponder"/> | ||
76 | </objects> | 124 | </objects> |
77 | - <point key="canvasLocation" x="164" y="253.2233883058471"/> | 125 | + <point key="canvasLocation" x="196" y="260.41979010494754"/> |
78 | </scene> | 126 | </scene> |
79 | </scenes> | 127 | </scenes> |
128 | + <resources> | ||
129 | + <image name="botoom_image" width="48" height="48"/> | ||
130 | + </resources> | ||
80 | </document> | 131 | </document> |
YouerLiveVideo/YouerLiveVideo/controllers/HomePage/MainHomeTableViewController.swift
@@ -111,6 +111,11 @@ class MainHomeTableViewController: UITableViewController { | @@ -111,6 +111,11 @@ class MainHomeTableViewController: UITableViewController { | ||
111 | */ | 111 | */ |
112 | override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { | 112 | override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { |
113 | NSLog("点击了第\(indexPath.row)个cell") | 113 | NSLog("点击了第\(indexPath.row)个cell") |
114 | + if indexPath.row==0{ | ||
115 | + //排行 | ||
116 | + let vc = UIStoryboard(name: "HomePage", bundle: nil).instantiateViewController(withIdentifier: "RankingTableViewController") as! RankingTableViewController | ||
117 | + self.navigationController?.pushViewController(vc, animated: true) | ||
118 | + } | ||
114 | } | 119 | } |
115 | 120 | ||
116 | 121 |
YouerLiveVideo/YouerLiveVideo/controllers/HomePage/RankingTableViewController.swift
0 → 100644
@@ -0,0 +1,279 @@ | @@ -0,0 +1,279 @@ | ||
1 | +// | ||
2 | +// RankingTableViewController.swift | ||
3 | +// YouerLiveVideo | ||
4 | +// | ||
5 | +// Created by 葛建军 on 17/5/20. | ||
6 | +// Copyright © 2017年 左丞. All rights reserved. | ||
7 | +// | ||
8 | + | ||
9 | +import UIKit | ||
10 | + | ||
11 | +class RankingTableViewController: UITableViewController { | ||
12 | + var openIndexAry:[Int]=[0,4] //记录那些是展开状态 | ||
13 | + var allDic:[Int:[String]]=Dictionary<Int,[String]>() | ||
14 | + var ary:[String]=["综合排名","资源贡献","下载排名","阅读排名","综合排名","资源贡献","下载排名","阅读排名"] | ||
15 | + override func viewDidLoad() { | ||
16 | + super.viewDidLoad() | ||
17 | + getAllSubRankings() | ||
18 | + } | ||
19 | + func getAllSubRankings(){ | ||
20 | + for i in 0..<8{ | ||
21 | + allDic.updateValue([], forKey: i) | ||
22 | + } | ||
23 | + AppDelegate.instance().httpServer.getSchoolGeneral { (str, error) in | ||
24 | + if error==nil { | ||
25 | + if JSON.fromString(jsonString: str)!["status"].intValue == 1{ | ||
26 | + httpJsonResule(jsonString: str, error: error, successHandler: { (json) in | ||
27 | + var lineAry:[String]=[] | ||
28 | + for item in JSON.fromString(jsonString: str)!["data"].arrayValue { | ||
29 | + lineAry.append(item["f_SchoolName"].stringValue) | ||
30 | + } | ||
31 | + self.allDic.updateValue(lineAry, forKey: 0) | ||
32 | + self.tableView.reloadData() | ||
33 | + }, failHandler: { (error) in | ||
34 | + self.view.makeToast("排名失败:\(error.localizedDescription)") | ||
35 | + }) | ||
36 | + }else{ | ||
37 | + self.view.makeToast("获取排名失败:\(JSON.fromString(jsonString: str)!["message"].stringValue)") | ||
38 | + } | ||
39 | + }else{ | ||
40 | + self.view.makeToast("获取排名失败:\(error!.description)") | ||
41 | + } | ||
42 | + } | ||
43 | + AppDelegate.instance().httpServer.getSchoolUpload { (str, error) in | ||
44 | + if error==nil { | ||
45 | + if JSON.fromString(jsonString: str)!["status"].intValue == 1{ | ||
46 | + httpJsonResule(jsonString: str, error: error, successHandler: { (json) in | ||
47 | + var lineAry:[String]=[] | ||
48 | + for item in JSON.fromString(jsonString: str)!["data"].arrayValue { | ||
49 | + lineAry.append(item["f_SchoolName"].stringValue) | ||
50 | + } | ||
51 | + self.allDic.updateValue(lineAry, forKey: 1) | ||
52 | + self.tableView.reloadData() | ||
53 | + }, failHandler: { (error) in | ||
54 | + self.view.makeToast("排名失败:\(error.localizedDescription)") | ||
55 | + }) | ||
56 | + }else{ | ||
57 | + self.view.makeToast("获取排名失败:\(JSON.fromString(jsonString: str)!["message"].stringValue)") | ||
58 | + } | ||
59 | + }else{ | ||
60 | + self.view.makeToast("获取排名失败:\(error!.description)") | ||
61 | + } | ||
62 | + } | ||
63 | + AppDelegate.instance().httpServer.getSchoolDownloads { (str, error) in | ||
64 | + if error==nil { | ||
65 | + if JSON.fromString(jsonString: str)!["status"].intValue == 1{ | ||
66 | + httpJsonResule(jsonString: str, error: error, successHandler: { (json) in | ||
67 | + var lineAry:[String]=[] | ||
68 | + for item in JSON.fromString(jsonString: str)!["data"].arrayValue { | ||
69 | + lineAry.append(item["f_SchoolName"].stringValue) | ||
70 | + } | ||
71 | + self.allDic.updateValue(lineAry, forKey: 2) | ||
72 | + self.tableView.reloadData() | ||
73 | + }, failHandler: { (error) in | ||
74 | + self.view.makeToast("排名失败:\(error.localizedDescription)") | ||
75 | + }) | ||
76 | + }else{ | ||
77 | + self.view.makeToast("获取排名失败:\(JSON.fromString(jsonString: str)!["message"].stringValue)") | ||
78 | + } | ||
79 | + }else{ | ||
80 | + self.view.makeToast("获取排名失败:\(error!.description)") | ||
81 | + } | ||
82 | + } | ||
83 | + AppDelegate.instance().httpServer.getSchoolPv { (str, error) in | ||
84 | + if error==nil { | ||
85 | + if JSON.fromString(jsonString: str)!["status"].intValue == 1{ | ||
86 | + httpJsonResule(jsonString: str, error: error, successHandler: { (json) in | ||
87 | + var lineAry:[String]=[] | ||
88 | + for item in JSON.fromString(jsonString: str)!["data"].arrayValue { | ||
89 | + lineAry.append(item["f_SchoolName"].stringValue) | ||
90 | + } | ||
91 | + self.allDic.updateValue(lineAry, forKey: 3) | ||
92 | + self.tableView.reloadData() | ||
93 | + }, failHandler: { (error) in | ||
94 | + self.view.makeToast("排名失败:\(error.localizedDescription)") | ||
95 | + }) | ||
96 | + }else{ | ||
97 | + self.view.makeToast("获取排名失败:\(JSON.fromString(jsonString: str)!["message"].stringValue)") | ||
98 | + } | ||
99 | + }else{ | ||
100 | + self.view.makeToast("获取排名失败:\(error!.description)") | ||
101 | + } | ||
102 | + } | ||
103 | + AppDelegate.instance().httpServer.getTeacherGenerals { (str, error) in | ||
104 | + if error==nil { | ||
105 | + if JSON.fromString(jsonString: str)!["status"].intValue == 1{ | ||
106 | + httpJsonResule(jsonString: str, error: error, successHandler: { (json) in | ||
107 | + var lineAry:[String]=[] | ||
108 | + for item in JSON.fromString(jsonString: str)!["data"].arrayValue { | ||
109 | + lineAry.append(item["f_SchoolName"].stringValue) | ||
110 | + } | ||
111 | + self.allDic.updateValue(lineAry, forKey: 4) | ||
112 | + self.tableView.reloadData() | ||
113 | + }, failHandler: { (error) in | ||
114 | + self.view.makeToast("排名失败:\(error.localizedDescription)") | ||
115 | + }) | ||
116 | + }else{ | ||
117 | + self.view.makeToast("获取排名失败:\(JSON.fromString(jsonString: str)!["message"].stringValue)") | ||
118 | + } | ||
119 | + }else{ | ||
120 | + self.view.makeToast("获取排名失败:\(error!.description)") | ||
121 | + } | ||
122 | + } | ||
123 | + AppDelegate.instance().httpServer.getTeacherUpload { (str, error) in | ||
124 | + if error==nil { | ||
125 | + if JSON.fromString(jsonString: str)!["status"].intValue == 1{ | ||
126 | + httpJsonResule(jsonString: str, error: error, successHandler: { (json) in | ||
127 | + var lineAry:[String]=[] | ||
128 | + for item in JSON.fromString(jsonString: str)!["data"].arrayValue { | ||
129 | + lineAry.append(item["f_SchoolName"].stringValue) | ||
130 | + } | ||
131 | + self.allDic.updateValue(lineAry, forKey: 5) | ||
132 | + self.tableView.reloadData() | ||
133 | + }, failHandler: { (error) in | ||
134 | + self.view.makeToast("排名失败:\(error.localizedDescription)") | ||
135 | + }) | ||
136 | + }else{ | ||
137 | + self.view.makeToast("获取排名失败:\(JSON.fromString(jsonString: str)!["message"].stringValue)") | ||
138 | + } | ||
139 | + }else{ | ||
140 | + self.view.makeToast("获取排名失败:\(error!.description)") | ||
141 | + } | ||
142 | + } | ||
143 | + AppDelegate.instance().httpServer.getTeacherDownload { (str, error) in | ||
144 | + if error==nil { | ||
145 | + if JSON.fromString(jsonString: str)!["status"].intValue == 1{ | ||
146 | + httpJsonResule(jsonString: str, error: error, successHandler: { (json) in | ||
147 | + var lineAry:[String]=[] | ||
148 | + for item in JSON.fromString(jsonString: str)!["data"].arrayValue { | ||
149 | + lineAry.append(item["f_SchoolName"].stringValue) | ||
150 | + } | ||
151 | + self.allDic.updateValue(lineAry, forKey: 6) | ||
152 | + self.tableView.reloadData() | ||
153 | + }, failHandler: { (error) in | ||
154 | + self.view.makeToast("排名失败:\(error.localizedDescription)") | ||
155 | + }) | ||
156 | + }else{ | ||
157 | + self.view.makeToast("获取排名失败:\(JSON.fromString(jsonString: str)!["message"].stringValue)") | ||
158 | + } | ||
159 | + }else{ | ||
160 | + self.view.makeToast("获取排名失败:\(error!.description)") | ||
161 | + } | ||
162 | + } | ||
163 | + AppDelegate.instance().httpServer.getTeacherPvs { (str, error) in | ||
164 | + if error==nil { | ||
165 | + if JSON.fromString(jsonString: str)!["status"].intValue == 1{ | ||
166 | + httpJsonResule(jsonString: str, error: error, successHandler: { (json) in | ||
167 | + var lineAry:[String]=[] | ||
168 | + for item in JSON.fromString(jsonString: str)!["data"].arrayValue { | ||
169 | + lineAry.append(item["f_SchoolName"].stringValue) | ||
170 | + } | ||
171 | + self.allDic.updateValue(lineAry, forKey: 7) | ||
172 | + self.tableView.reloadData() | ||
173 | + }, failHandler: { (error) in | ||
174 | + self.view.makeToast("排名失败:\(error.localizedDescription)") | ||
175 | + }) | ||
176 | + }else{ | ||
177 | + self.view.makeToast("获取排名失败:\(JSON.fromString(jsonString: str)!["message"].stringValue)") | ||
178 | + } | ||
179 | + }else{ | ||
180 | + self.view.makeToast("获取排名失败:\(error!.description)") | ||
181 | + } | ||
182 | + } | ||
183 | + } | ||
184 | + override func didReceiveMemoryWarning() { | ||
185 | + super.didReceiveMemoryWarning() | ||
186 | + } | ||
187 | + // MARK: - Table view data source | ||
188 | + override func numberOfSections(in tableView: UITableView) -> Int { | ||
189 | + return 1 | ||
190 | + } | ||
191 | + | ||
192 | + override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { | ||
193 | + return 8 | ||
194 | + } | ||
195 | + override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { | ||
196 | + var height:CGFloat=44 | ||
197 | + if indexPath.row==0 || indexPath.row==4{ | ||
198 | + height=height+44 | ||
199 | + } | ||
200 | + if indexPath.row != 3{ | ||
201 | + height=height+20 | ||
202 | + } | ||
203 | + if openIndexAry.contains(indexPath.row){ | ||
204 | + height=height+CGFloat(30*allDic[indexPath.row]!.count) | ||
205 | + } | ||
206 | + return height | ||
207 | + } | ||
208 | + override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { | ||
209 | + let cell=tableView.dequeueReusableCell(withIdentifier: "ItemTableViewCell", for: indexPath) as! ItemTableViewCell | ||
210 | + cell.superVC=self | ||
211 | + cell.indexPath=indexPath | ||
212 | + if indexPath.row==0{ | ||
213 | + cell.sectionTitleLabel.text="学校排行" | ||
214 | + cell.sectionTitleLabel.isHidden=false | ||
215 | + } | ||
216 | + if indexPath.row==4{ | ||
217 | + cell.sectionTitleLabel.text="教师排行" | ||
218 | + cell.sectionTitleLabel.isHidden=false | ||
219 | + } | ||
220 | + if indexPath.row==0 || indexPath.row==4{ | ||
221 | + cell.titleViewTop.constant=44 | ||
222 | + }else{ | ||
223 | + cell.titleViewTop.constant=0 | ||
224 | + } | ||
225 | + if indexPath.row==3{ | ||
226 | + cell.tableViewButtom.constant=0 | ||
227 | + }else{ | ||
228 | + cell.tableViewButtom.constant=20 | ||
229 | + } | ||
230 | + cell.titleLabel.text=ary[indexPath.row] | ||
231 | + if openIndexAry.contains(indexPath.row){ | ||
232 | + cell.titleImageView.image=UIImage(named: "botoom_image") | ||
233 | + }else{ | ||
234 | + cell.titleImageView.image=UIImage(named: "top_image") | ||
235 | + } | ||
236 | + cell.subTableView.reloadData() | ||
237 | + return cell | ||
238 | + } | ||
239 | + | ||
240 | +} | ||
241 | +class ItemTableViewCell: UITableViewCell,UITableViewDelegate,UITableViewDataSource { | ||
242 | + var superVC:RankingTableViewController? | ||
243 | + var indexPath:IndexPath! | ||
244 | + @IBOutlet var sectionTitleLabel: UILabel! | ||
245 | + @IBOutlet var titleViewTop: NSLayoutConstraint! | ||
246 | + @IBOutlet var subTableView: UITableView! | ||
247 | + @IBOutlet var tableViewButtom: NSLayoutConstraint! | ||
248 | + @IBOutlet var titleLabel: UILabel! | ||
249 | + @IBOutlet var titleImageView: UIImageView! | ||
250 | + func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { | ||
251 | + if superVC != nil { | ||
252 | + if superVC!.openIndexAry.contains(indexPath.row){ | ||
253 | + return superVC!.allDic[indexPath.row]!.count | ||
254 | + }else{ | ||
255 | + return 0 | ||
256 | + } | ||
257 | + }else{ | ||
258 | + return 0 | ||
259 | + } | ||
260 | + } | ||
261 | + func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { | ||
262 | + return 30 | ||
263 | + } | ||
264 | + func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { | ||
265 | + let cell=tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) | ||
266 | + if superVC != nil { | ||
267 | + cell.textLabel?.text="\(superVC!.allDic[self.indexPath.row]![indexPath.row])" | ||
268 | + } | ||
269 | + return cell | ||
270 | + } | ||
271 | + @IBAction func openOrCloseAction(_ sender: UIButton) { | ||
272 | + if superVC!.openIndexAry.contains(indexPath.row){ | ||
273 | + superVC!.openIndexAry.remove(at: getCurrentIndex(item: indexPath.row, arry: superVC!.openIndexAry)) | ||
274 | + }else{ | ||
275 | + superVC!.openIndexAry.append(indexPath.row) | ||
276 | + } | ||
277 | + superVC!.tableView.reloadData() | ||
278 | + } | ||
279 | +} |
YouerLiveVideo/YouerLiveVideo/controllers/MViewController.swift
@@ -20,6 +20,7 @@ class MViewController: UITabBarController { | @@ -20,6 +20,7 @@ class MViewController: UITabBarController { | ||
20 | super.viewDidLoad() | 20 | super.viewDidLoad() |
21 | self.tabBar.tintColor=Theme.topBarColor() | 21 | self.tabBar.tintColor=Theme.topBarColor() |
22 | tabBar.barTintColor=UIColor.white | 22 | tabBar.barTintColor=UIColor.white |
23 | + tabBarController?.tabBar.isHidden=true | ||
23 | } | 24 | } |
24 | 25 | ||
25 | override func didReceiveMemoryWarning() { | 26 | override func didReceiveMemoryWarning() { |
YouerLiveVideo/YouerLiveVideo/util/network.swift
@@ -308,43 +308,43 @@ final class HTTPServer{ | @@ -308,43 +308,43 @@ final class HTTPServer{ | ||
308 | 308 | ||
309 | //MARK:-DataStatistics | 309 | //MARK:-DataStatistics |
310 | //获取前十学校的综合排行 | 310 | //获取前十学校的综合排行 |
311 | - func getSchoolGeneral(parameters: [String : AnyObject]?,completionHandler:@escaping (String?, NSError?) -> ()){ | ||
312 | - KHttp.GET(url: HTTPServer.URL_DATASTATISTICGETSCHOOLGENERAL, parameters: parameters,headers:["Authorization":token!], completionHandler: completionHandler) | 311 | + func getSchoolGeneral(completionHandler:@escaping (String?, NSError?) -> ()){ |
312 | + KHttp.GET(url: HTTPServer.URL_DATASTATISTICGETSCHOOLGENERAL,headers:["Authorization":token!], completionHandler: completionHandler) | ||
313 | } | 313 | } |
314 | 314 | ||
315 | //获取前十学校的阅读量排行 | 315 | //获取前十学校的阅读量排行 |
316 | - func getSchoolPv(parameters: [String : AnyObject]?,completionHandler:@escaping (String?, NSError?) -> ()){ | ||
317 | - KHttp.GET(url: HTTPServer.URL_DATASTATISTICGETSCHOOLPV, parameters: parameters,headers:["Authorization":token!], completionHandler: completionHandler) | 316 | + func getSchoolPv(completionHandler:@escaping (String?, NSError?) -> ()){ |
317 | + KHttp.GET(url: HTTPServer.URL_DATASTATISTICGETSCHOOLPV, headers:["Authorization":token!], completionHandler: completionHandler) | ||
318 | } | 318 | } |
319 | 319 | ||
320 | //获取排行前十学校的下载量 | 320 | //获取排行前十学校的下载量 |
321 | - func getSchoolDownloads(parameters: [String : AnyObject]?,completionHandler:@escaping (String?, NSError?) -> ()){ | ||
322 | - KHttp.GET(url: HTTPServer.URL_DATASTATISTICGETSCHOOLDOWNLOADS, parameters: parameters,headers:["Authorization":token!], completionHandler: completionHandler) | 321 | + func getSchoolDownloads(completionHandler:@escaping (String?, NSError?) -> ()){ |
322 | + KHttp.GET(url: HTTPServer.URL_DATASTATISTICGETSCHOOLDOWNLOADS,headers:["Authorization":token!], completionHandler: completionHandler) | ||
323 | } | 323 | } |
324 | 324 | ||
325 | //获取排行前十学校的上传数 | 325 | //获取排行前十学校的上传数 |
326 | - func getSchoolUpload(parameters: [String : AnyObject]?,completionHandler:@escaping (String?, NSError?) -> ()){ | ||
327 | - KHttp.GET(url: HTTPServer.URL_DATASTATISTICGETSCHOOLUPLOAD, parameters: parameters,headers:["Authorization":token!], completionHandler: completionHandler) | 326 | + func getSchoolUpload(completionHandler:@escaping (String?, NSError?) -> ()){ |
327 | + KHttp.GET(url: HTTPServer.URL_DATASTATISTICGETSCHOOLUPLOAD,headers:["Authorization":token!], completionHandler: completionHandler) | ||
328 | } | 328 | } |
329 | 329 | ||
330 | //获取排行前十的教师的综合数 | 330 | //获取排行前十的教师的综合数 |
331 | - func getTeacherGenerals(parameters: [String : AnyObject]?,completionHandler:@escaping (String?, NSError?) -> ()){ | ||
332 | - KHttp.GET(url: HTTPServer.URL_DATASTATISTICGETTEACHERGENERALS, parameters: parameters,headers:["Authorization":token!], completionHandler: completionHandler) | 331 | + func getTeacherGenerals(completionHandler:@escaping (String?, NSError?) -> ()){ |
332 | + KHttp.GET(url: HTTPServer.URL_DATASTATISTICGETTEACHERGENERALS,headers:["Authorization":token!], completionHandler: completionHandler) | ||
333 | } | 333 | } |
334 | 334 | ||
335 | //获取排名前十的教师发的资源的阅读量 | 335 | //获取排名前十的教师发的资源的阅读量 |
336 | - func getTeacherPvs(parameters: [String : AnyObject]?,completionHandler:@escaping (String?, NSError?) -> ()){ | ||
337 | - KHttp.GET(url: HTTPServer.URL_DATASTATISTICGETTEACHERPVS, parameters: parameters,headers:["Authorization":token!], completionHandler: completionHandler) | 336 | + func getTeacherPvs(completionHandler:@escaping (String?, NSError?) -> ()){ |
337 | + KHttp.GET(url: HTTPServer.URL_DATASTATISTICGETTEACHERPVS, headers:["Authorization":token!], completionHandler: completionHandler) | ||
338 | } | 338 | } |
339 | 339 | ||
340 | //获取排名前十的资源的下载量 | 340 | //获取排名前十的资源的下载量 |
341 | - func getTeacherDownload(parameters: [String : AnyObject]?,completionHandler:@escaping (String?, NSError?) -> ()){ | ||
342 | - KHttp.GET(url: HTTPServer.URL_DATASTATISTICGETTEACHERDOWNLOAD, parameters: parameters,headers:["Authorization":token!], completionHandler: completionHandler) | 341 | + func getTeacherDownload(completionHandler:@escaping (String?, NSError?) -> ()){ |
342 | + KHttp.GET(url: HTTPServer.URL_DATASTATISTICGETTEACHERDOWNLOAD, headers:["Authorization":token!], completionHandler: completionHandler) | ||
343 | } | 343 | } |
344 | 344 | ||
345 | //获取排名前十的教师的上传量 | 345 | //获取排名前十的教师的上传量 |
346 | - func getTeacherUpload(parameters: [String : AnyObject]?,completionHandler:@escaping (String?, NSError?) -> ()){ | ||
347 | - KHttp.GET(url: HTTPServer.URL_DATASTATISTICGETTEACHERUPLOAD, parameters: parameters,headers:["Authorization":token!], completionHandler: completionHandler) | 346 | + func getTeacherUpload(completionHandler:@escaping (String?, NSError?) -> ()){ |
347 | + KHttp.GET(url: HTTPServer.URL_DATASTATISTICGETTEACHERUPLOAD,headers:["Authorization":token!], completionHandler: completionHandler) | ||
348 | } | 348 | } |
349 | 349 | ||
350 | //分页获取排行榜 | 350 | //分页获取排行榜 |
YouerLiveVideo/YouerLiveVideo/util/utiles.swift
@@ -187,7 +187,15 @@ class indexLongPressGesture: UILongPressGestureRecognizer { | @@ -187,7 +187,15 @@ class indexLongPressGesture: UILongPressGestureRecognizer { | ||
187 | class indexUIMenuItem: UIMenuItem { | 187 | class indexUIMenuItem: UIMenuItem { |
188 | var indexPath:IndexPath? | 188 | var indexPath:IndexPath? |
189 | } | 189 | } |
190 | - | 190 | +//获取元素在数组中的位置 |
191 | +func getCurrentIndex(item:Int,arry:[Int])->Int{ | ||
192 | + for i in 0..<arry.count { | ||
193 | + if arry[i]==item{ | ||
194 | + return i | ||
195 | + } | ||
196 | + } | ||
197 | + return 0 | ||
198 | +} | ||
191 | //图片缩放 | 199 | //图片缩放 |
192 | extension UIImage{ | 200 | extension UIImage{ |
193 | func imageScaledToScale(_ scale:CGFloat)->UIImage{ | 201 | func imageScaledToScale(_ scale:CGFloat)->UIImage{ |