Steven 2 years ago
parent
commit
285fa07e7f

+ 98 - 0
KulexiuForStudent/KulexiuForStudent.xcodeproj/xcshareddata/xcschemes/KulexiuForStudent.xcscheme

@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+   LastUpgradeVersion = "1330"
+   version = "1.3">
+   <BuildAction
+      parallelizeBuildables = "YES"
+      buildImplicitDependencies = "YES">
+      <BuildActionEntries>
+         <BuildActionEntry
+            buildForTesting = "YES"
+            buildForRunning = "YES"
+            buildForProfiling = "YES"
+            buildForArchiving = "YES"
+            buildForAnalyzing = "YES">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "275E8AA427E18F8800DD3F6E"
+               BuildableName = "KulexiuForStudent.app"
+               BlueprintName = "KulexiuForStudent"
+               ReferencedContainer = "container:KulexiuForStudent.xcodeproj">
+            </BuildableReference>
+         </BuildActionEntry>
+      </BuildActionEntries>
+   </BuildAction>
+   <TestAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      shouldUseLaunchSchemeArgsEnv = "YES">
+      <Testables>
+         <TestableReference
+            skipped = "NO">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "275E8ABF27E18F8C00DD3F6E"
+               BuildableName = "KulexiuForStudentTests.xctest"
+               BlueprintName = "KulexiuForStudentTests"
+               ReferencedContainer = "container:KulexiuForStudent.xcodeproj">
+            </BuildableReference>
+         </TestableReference>
+         <TestableReference
+            skipped = "NO">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "275E8AC927E18F8C00DD3F6E"
+               BuildableName = "KulexiuForStudentUITests.xctest"
+               BlueprintName = "KulexiuForStudentUITests"
+               ReferencedContainer = "container:KulexiuForStudent.xcodeproj">
+            </BuildableReference>
+         </TestableReference>
+      </Testables>
+   </TestAction>
+   <LaunchAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      launchStyle = "0"
+      useCustomWorkingDirectory = "NO"
+      ignoresPersistentStateOnLaunch = "NO"
+      debugDocumentVersioning = "YES"
+      debugServiceExtension = "internal"
+      allowLocationSimulation = "YES">
+      <BuildableProductRunnable
+         runnableDebuggingMode = "0">
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "275E8AA427E18F8800DD3F6E"
+            BuildableName = "KulexiuForStudent.app"
+            BlueprintName = "KulexiuForStudent"
+            ReferencedContainer = "container:KulexiuForStudent.xcodeproj">
+         </BuildableReference>
+      </BuildableProductRunnable>
+   </LaunchAction>
+   <ProfileAction
+      buildConfiguration = "Release"
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      savedToolIdentifier = ""
+      useCustomWorkingDirectory = "NO"
+      debugDocumentVersioning = "YES">
+      <BuildableProductRunnable
+         runnableDebuggingMode = "0">
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "275E8AA427E18F8800DD3F6E"
+            BuildableName = "KulexiuForStudent.app"
+            BlueprintName = "KulexiuForStudent"
+            ReferencedContainer = "container:KulexiuForStudent.xcodeproj">
+         </BuildableReference>
+      </BuildableProductRunnable>
+   </ProfileAction>
+   <AnalyzeAction
+      buildConfiguration = "Debug">
+   </AnalyzeAction>
+   <ArchiveAction
+      buildConfiguration = "Release"
+      revealArchiveInOrganizer = "YES">
+   </ArchiveAction>
+</Scheme>

+ 22 - 0
KulexiuForStudent/KulexiuForStudent/Module/Home/NoticeCenter/View/NotiferNavView.h

@@ -0,0 +1,22 @@
+//
+//  NotiferNavView.h
+//  KulexiuForTeacher
+//
+//  Created by 王智 on 2022/6/22.
+//
+
+#import <UIKit/UIKit.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+typedef void(^NotiferCallback)(BOOL isBack);
+
+@interface NotiferNavView : UIView
+
++ (instancetype)shareInstance;
+
+- (void)notiferNavAction:(NotiferCallback)callback;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 48 - 0
KulexiuForStudent/KulexiuForStudent/Module/Home/NoticeCenter/View/NotiferNavView.m

@@ -0,0 +1,48 @@
+//
+//  NotiferNavView.m
+//  KulexiuForTeacher
+//
+//  Created by 王智 on 2022/6/22.
+//
+
+#import "NotiferNavView.h"
+
+@interface NotiferNavView ()
+
+@property (nonatomic, copy) NotiferCallback callback;
+
+@end
+
+@implementation NotiferNavView
+
++ (instancetype)shareInstance {
+    NotiferNavView *view = [[[NSBundle mainBundle] loadNibNamed:@"NotiferNavView" owner:nil options:nil] firstObject];
+    return view;
+}
+
+- (void)notiferNavAction:(NotiferCallback)callback {
+    if (callback) {
+        self.callback = callback;
+    }
+}
+
+- (IBAction)backAction:(id)sender {
+    if (self.callback) {
+        self.callback(YES);
+    }
+}
+- (IBAction)clearAction:(id)sender {
+    if (self.callback) {
+        self.callback(NO);
+    }
+}
+
+/*
+// Only override drawRect: if you perform custom drawing.
+// An empty implementation adversely affects performance during animation.
+- (void)drawRect:(CGRect)rect {
+    // Drawing code
+}
+*/
+
+@end

+ 96 - 0
KulexiuForStudent/KulexiuForStudent/Module/Home/NoticeCenter/View/NotiferNavView.xib

@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="20037" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
+    <device id="retina6_1" orientation="portrait" appearance="light"/>
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="20020"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <objects>
+        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
+        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
+        <view contentMode="scaleToFill" id="iN0-l3-epB" customClass="NotiferNavView">
+            <rect key="frame" x="0.0" y="0.0" width="414" height="88"/>
+            <autoresizingMask key="autoresizingMask"/>
+            <subviews>
+                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="84g-09-Gui">
+                    <rect key="frame" x="0.0" y="44" width="414" height="44"/>
+                    <subviews>
+                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="back_black" translatesAutoresizingMaskIntoConstraints="NO" id="2jg-w8-pP8">
+                            <rect key="frame" x="14" y="12" width="12" height="20"/>
+                        </imageView>
+                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="qaL-id-TnJ">
+                            <rect key="frame" x="0.0" y="0.0" width="44" height="44"/>
+                            <constraints>
+                                <constraint firstAttribute="width" constant="44" id="2F3-Es-mVf"/>
+                            </constraints>
+                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                            <connections>
+                                <action selector="backAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="S1R-1a-MOy"/>
+                            </connections>
+                        </button>
+                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="clear_notifer" translatesAutoresizingMaskIntoConstraints="NO" id="zOi-ek-4xE">
+                            <rect key="frame" x="374" y="12" width="20" height="20"/>
+                            <constraints>
+                                <constraint firstAttribute="width" constant="20" id="8i8-9X-leR"/>
+                                <constraint firstAttribute="height" constant="20" id="jl1-9W-qX0"/>
+                            </constraints>
+                        </imageView>
+                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="全部已读" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Mgr-dN-gvv">
+                            <rect key="frame" x="325" y="15" width="45" height="14"/>
+                            <fontDescription key="fontDescription" type="system" pointSize="11"/>
+                            <color key="textColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="calibratedRGB"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="byV-S5-B4F">
+                            <rect key="frame" x="325" y="0.0" width="69" height="44"/>
+                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                            <connections>
+                                <action selector="clearAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="W2p-7R-Ipw"/>
+                            </connections>
+                        </button>
+                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="消息盒子" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="SoU-sN-Ahv">
+                            <rect key="frame" x="170" y="11" width="74" height="22"/>
+                            <fontDescription key="fontDescription" type="system" weight="medium" pointSize="18"/>
+                            <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                    </subviews>
+                    <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                    <constraints>
+                        <constraint firstAttribute="bottom" secondItem="qaL-id-TnJ" secondAttribute="bottom" id="2gu-15-PF5"/>
+                        <constraint firstItem="2jg-w8-pP8" firstAttribute="leading" secondItem="84g-09-Gui" secondAttribute="leading" constant="14" id="3ni-rk-JrT"/>
+                        <constraint firstItem="zOi-ek-4xE" firstAttribute="centerY" secondItem="Mgr-dN-gvv" secondAttribute="centerY" id="58e-5h-9qk"/>
+                        <constraint firstItem="byV-S5-B4F" firstAttribute="leading" secondItem="Mgr-dN-gvv" secondAttribute="leading" id="8vS-uc-Kmu"/>
+                        <constraint firstItem="2jg-w8-pP8" firstAttribute="centerY" secondItem="84g-09-Gui" secondAttribute="centerY" id="9cF-UY-OJC"/>
+                        <constraint firstAttribute="bottom" secondItem="byV-S5-B4F" secondAttribute="bottom" id="F5N-ZW-lXP"/>
+                        <constraint firstItem="SoU-sN-Ahv" firstAttribute="centerX" secondItem="84g-09-Gui" secondAttribute="centerX" id="IGp-xd-jbK"/>
+                        <constraint firstItem="qaL-id-TnJ" firstAttribute="top" secondItem="84g-09-Gui" secondAttribute="top" id="Jqm-Ld-tLw"/>
+                        <constraint firstItem="zOi-ek-4xE" firstAttribute="trailing" secondItem="byV-S5-B4F" secondAttribute="trailing" id="KA3-Ss-9ft"/>
+                        <constraint firstItem="byV-S5-B4F" firstAttribute="top" secondItem="84g-09-Gui" secondAttribute="top" id="Mdr-qO-dLn"/>
+                        <constraint firstAttribute="height" constant="44" id="Nuj-AB-XNZ"/>
+                        <constraint firstItem="SoU-sN-Ahv" firstAttribute="centerY" secondItem="84g-09-Gui" secondAttribute="centerY" id="Q5B-2o-dFA"/>
+                        <constraint firstAttribute="trailing" secondItem="zOi-ek-4xE" secondAttribute="trailing" constant="20" id="WEG-ZZ-hEV"/>
+                        <constraint firstItem="zOi-ek-4xE" firstAttribute="leading" secondItem="Mgr-dN-gvv" secondAttribute="trailing" constant="4" id="miC-G4-rBh"/>
+                        <constraint firstItem="zOi-ek-4xE" firstAttribute="centerY" secondItem="84g-09-Gui" secondAttribute="centerY" id="oOd-1s-hwY"/>
+                        <constraint firstItem="qaL-id-TnJ" firstAttribute="leading" secondItem="84g-09-Gui" secondAttribute="leading" id="vOB-8J-Nw7"/>
+                    </constraints>
+                </view>
+            </subviews>
+            <color key="backgroundColor" red="0.96470588235294119" green="0.97254901960784312" blue="0.97647058823529409" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/>
+            <constraints>
+                <constraint firstAttribute="bottom" secondItem="84g-09-Gui" secondAttribute="bottom" id="0Kf-tA-X67"/>
+                <constraint firstItem="84g-09-Gui" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="JPr-5J-Pr4"/>
+                <constraint firstAttribute="trailing" secondItem="84g-09-Gui" secondAttribute="trailing" id="glv-ar-EvT"/>
+            </constraints>
+            <nil key="simulatedTopBarMetrics"/>
+            <nil key="simulatedBottomBarMetrics"/>
+            <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
+            <point key="canvasLocation" x="131.8840579710145" y="60.9375"/>
+        </view>
+    </objects>
+    <resources>
+        <image name="back_black" width="12" height="20"/>
+        <image name="clear_notifer" width="20" height="20"/>
+    </resources>
+</document>