Pārlūkot izejas kodu

【会员系统】用户个人中心补充渐变

wangshuai 3 mēneši atpakaļ
vecāks
revīzija
ac9d789371

+ 29 - 2
PDF Office/PDF Master/MemberCenter/ViewController/KMUserInfoViewController.swift

@@ -8,6 +8,33 @@
 import Cocoa
 import Combine
 
+class KMGradationBox: NSBox {
+    override func draw(_ dirtyRect: NSRect){
+        super.draw(dirtyRect)
+        
+        guard let context = NSGraphicsContext.current?.cgContext else { return }
+        
+        // 定义渐变颜色
+        let colors = [NSColor(hex: "EBDABD").cgColor, NSColor(hex: "E5CCA8").cgColor]
+        let gradient = CGGradient(colorsSpace: nil, colors: colors as CFArray, locations: nil)
+        
+        // 定义渐变起始和结束点
+        let startPoint = CGPoint(x: bounds.minX, y: bounds.minY)
+        let endPoint = CGPoint(x: bounds.maxX, y: bounds.maxY)
+        
+        // 绘制圆角矩形路径
+        let roundedPath = NSBezierPath(roundedRect: bounds, xRadius: 4, yRadius: 4) // 你的圆角半径
+        roundedPath.addClip() // 添加路径为剪切区域
+        
+        context.clip() // 使路径生效
+        
+        // 绘制渐变
+        context.drawLinearGradient(gradient!, start: startPoint, end: endPoint, options: [])
+        
+        context.restoreGState()
+    }
+}
+
 @objcMembers
 class KMUserInfoViewController: NSViewController {
     
@@ -18,9 +45,10 @@ class KMUserInfoViewController: NSViewController {
     @IBOutlet weak var endDateLabel: NSTextField!
 
     @IBOutlet weak var membershipLabel: NSTextField!
-    @IBOutlet weak var lockedBackgroud: NSImageView!
     @IBOutlet weak var lockedImageView: NSImageView!
     @IBOutlet weak var lockedLabel: NSTextField!
+    @IBOutlet var lockedLabelWidthffset:NSLayoutConstraint!
+    @IBOutlet var lockedBox:KMGradationBox!
 
     @IBOutlet weak var centerBackgroud: NSImageView!
     @IBOutlet weak var rightsBox: NSBox!
@@ -462,7 +490,6 @@ class KMUserInfoViewController: NSViewController {
             }
         }
         membershipLabel.font = NSFont.SFMediumFontWithSize(16)
-        lockedBackgroud.image = NSImage(named: "ButtonBackgroundImage1")
         lockedLabel.font = NSFont.SFMediumFontWithSize(12)
         rightsBox.contentView = rightsView
         number1Label.font = NSFont.SFMediumFontWithSize(24)

+ 6 - 10
PDF Office/PDF Master/MemberCenter/ViewController/KMUserInfoViewController.xib

@@ -48,9 +48,10 @@
                 <outlet property="iconView2" destination="v1h-r9-dBQ" id="thC-TC-OVI"/>
                 <outlet property="iconView3" destination="DeW-Iv-IzB" id="eYI-RA-WIc"/>
                 <outlet property="iconView4" destination="Z7T-fU-CU5" id="Q6b-tu-Tg9"/>
-                <outlet property="lockedBackgroud" destination="uEq-Mo-zJU" id="d4Q-Vm-l3Y"/>
+                <outlet property="lockedBox" destination="NcD-bG-uzV" id="Amg-WY-VZq"/>
                 <outlet property="lockedImageView" destination="wcT-k3-31w" id="wHQ-RN-sc9"/>
                 <outlet property="lockedLabel" destination="Yp0-r5-Zyn" id="jNX-dC-Fjg"/>
+                <outlet property="lockedLabelWidthffset" destination="61O-vD-6p3" id="wUq-6P-hAR"/>
                 <outlet property="membershipLabel" destination="gGn-tS-WsW" id="1I5-50-bap"/>
                 <outlet property="number1ImageView" destination="5md-dc-o6U" id="NmQ-pX-esg"/>
                 <outlet property="number1Label" destination="3Lv-MN-obu" id="3vH-6p-wk7"/>
@@ -189,16 +190,12 @@
                                                     <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
                                                 </textFieldCell>
                                             </textField>
-                                            <box boxType="custom" borderWidth="0.0" title="Box" translatesAutoresizingMaskIntoConstraints="NO" id="NcD-bG-uzV">
+                                            <box boxType="custom" borderWidth="0.0" cornerRadius="4" title="Box" translatesAutoresizingMaskIntoConstraints="NO" id="NcD-bG-uzV" customClass="KMGradationBox" customModule="PDF_Reader_Pro" customModuleProvider="target">
                                                 <rect key="frame" x="41" y="0.0" width="69" height="24"/>
                                                 <view key="contentView" id="nIR-Kq-MEv">
                                                     <rect key="frame" x="0.0" y="0.0" width="69" height="24"/>
                                                     <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                                                     <subviews>
-                                                        <imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="uEq-Mo-zJU">
-                                                            <rect key="frame" x="0.0" y="0.0" width="69" height="24"/>
-                                                            <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyUpOrDown" id="7nA-tt-1LD"/>
-                                                        </imageView>
                                                         <imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="wcT-k3-31w">
                                                             <rect key="frame" x="8" y="4" width="16" height="16"/>
                                                             <constraints>
@@ -209,6 +206,9 @@
                                                         </imageView>
                                                         <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Yp0-r5-Zyn">
                                                             <rect key="frame" x="26" y="4" width="37" height="16"/>
+                                                            <constraints>
+                                                                <constraint firstAttribute="width" constant="33" id="61O-vD-6p3"/>
+                                                            </constraints>
                                                             <textFieldCell key="cell" lineBreakMode="clipping" title="Label" id="WB3-CE-yDh">
                                                                 <font key="font" metaFont="system"/>
                                                                 <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
@@ -217,13 +217,9 @@
                                                         </textField>
                                                     </subviews>
                                                     <constraints>
-                                                        <constraint firstAttribute="trailing" secondItem="uEq-Mo-zJU" secondAttribute="trailing" id="Mgm-Yq-0Ra"/>
                                                         <constraint firstItem="wcT-k3-31w" firstAttribute="leading" secondItem="nIR-Kq-MEv" secondAttribute="leading" constant="8" id="P1s-GJ-pSK"/>
-                                                        <constraint firstItem="uEq-Mo-zJU" firstAttribute="top" secondItem="nIR-Kq-MEv" secondAttribute="top" id="RqJ-a3-a6D"/>
-                                                        <constraint firstAttribute="bottom" secondItem="uEq-Mo-zJU" secondAttribute="bottom" id="X3r-QN-VLI"/>
                                                         <constraint firstAttribute="trailing" secondItem="Yp0-r5-Zyn" secondAttribute="trailing" constant="8" id="Y4N-KK-4ec"/>
                                                         <constraint firstItem="Yp0-r5-Zyn" firstAttribute="leading" secondItem="wcT-k3-31w" secondAttribute="trailing" constant="4" id="dSK-0a-rXE"/>
-                                                        <constraint firstItem="uEq-Mo-zJU" firstAttribute="leading" secondItem="nIR-Kq-MEv" secondAttribute="leading" id="iuF-oS-AaP"/>
                                                     </constraints>
                                                 </view>
                                                 <constraints>