This commit is contained in:
启星
2025-11-28 22:43:06 +08:00
parent 8913ea6f48
commit 7eb4f8d3b8
197 changed files with 7315 additions and 666 deletions

View File

@@ -0,0 +1,23 @@
//
// QXBodyPriceRuleView.h
// QXLive
//
// Created by 启星 on 2025/11/25.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@interface QXBodyPriceRuleView : UIView
@property (weak, nonatomic) IBOutlet UILabel *currentPriceLabel;
@property (weak, nonatomic) IBOutlet UILabel *beyoundPriceLabel;
@property (weak, nonatomic) IBOutlet UILabel *recievePriceLabel;
@property (weak, nonatomic) IBOutlet UILabel *realPriceLabel;
@property (weak, nonatomic) IBOutlet UIButton *commitBtn;
@property (weak, nonatomic) IBOutlet UIButton *closeBtn;
@property (weak, nonatomic) IBOutlet UIView *bgView;
+(void)showInView:(UIView*)view;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,41 @@
//
// QXBodyPriceRuleView.m
// QXLive
//
// Created by on 2025/11/25.
//
#import "QXBodyPriceRuleView.h"
@implementation QXBodyPriceRuleView
+(void)showInView:(UIView*)view{
UINib *nib = [UINib nibWithNibName:@"QXBodyPriceRuleView" bundle:[NSBundle mainBundle]];
QXBodyPriceRuleView *ruleView = [nib instantiateWithOwner:nil options:nil].firstObject;
ruleView.frame = UIScreen.mainScreen.bounds;
ruleView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
ruleView.bgView.alpha = 0;
[view addSubview:ruleView];
[UIView animateWithDuration:0.2 animations:^{
ruleView.bgView.alpha = 1;
}completion:^(BOOL finished) {
}];
}
- (IBAction)closeAction:(id)sender {
[UIView animateWithDuration:0.2 animations:^{
self.bgView.alpha = 0;
}completion:^(BOOL finished) {
[self removeFromSuperview];
}];
}
- (IBAction)commitAction:(id)sender {
[UIView animateWithDuration:0.3 animations:^{
self.bgView.alpha = 0;
}completion:^(BOOL finished) {
[self removeFromSuperview];
}];
}
@end

View File

@@ -0,0 +1,386 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23504" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
<device id="retina6_12" orientation="portrait" appearance="light"/>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23506"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
<capability name="System colors in document resources" minToolsVersion="11.0"/>
<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="QXBodyPriceRuleView">
<rect key="frame" x="0.0" y="0.0" width="393" height="852"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="bjS-Eu-Wht">
<rect key="frame" x="40.666666666666657" y="203.66666666666663" width="312" height="470"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="body_price_rule_bg" translatesAutoresizingMaskIntoConstraints="NO" id="0pu-br-WLc">
<rect key="frame" x="0.0" y="0.0" width="312" height="470"/>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="身价详情" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Cey-rm-4VM">
<rect key="frame" x="124.00000000000001" y="11" width="63.666666666666671" height="24"/>
<constraints>
<constraint firstAttribute="height" constant="24" id="QMU-XW-UiY"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="16"/>
<color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="ag3-iq-BzI">
<rect key="frame" x="272" y="2" width="40" height="40"/>
<constraints>
<constraint firstAttribute="width" constant="40" id="1RM-bw-F5f"/>
<constraint firstAttribute="height" constant="40" id="jXb-VG-MeW"/>
</constraints>
<inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
<state key="normal" image="wallet_close"/>
<connections>
<action selector="closeAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="Kn0-Ed-x94"/>
</connections>
</button>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="r7a-Qi-IKE">
<rect key="frame" x="16" y="46" width="280" height="113"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="当前身价" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="zaH-Pt-FkB">
<rect key="frame" x="112" y="10.000000000000028" width="56" height="18"/>
<constraints>
<constraint firstAttribute="height" constant="18" id="c6c-Ff-k6z"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<color key="textColor" red="1" green="0.46666666666666667" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="1" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="yoB-8g-xXJ">
<rect key="frame" x="126.33333333333333" y="34.000000000000028" width="9.3333333333333286" height="28"/>
<constraints>
<constraint firstAttribute="height" constant="28" id="ZUT-FY-fDo"/>
</constraints>
<fontDescription key="fontDescription" type="system" weight="medium" pointSize="20"/>
<color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="room_upseat_coin" translatesAutoresizingMaskIntoConstraints="NO" id="yiz-ZZ-xxm">
<rect key="frame" x="137.66666666666669" y="39.000000000000028" width="18" height="18"/>
<constraints>
<constraint firstAttribute="height" constant="18" id="AN3-EC-ehA"/>
<constraint firstAttribute="width" constant="18" id="wI0-ag-JJ4"/>
</constraints>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="注每个用户默认身价是1金币收到礼物后按照比例进行换算身价" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="WwA-Jn-1rz">
<rect key="frame" x="16" y="68.000000000000028" width="248" height="39"/>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<color key="textColor" red="0.81176470588235294" green="0.61568627450980395" blue="0.25098039215686274" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<color key="backgroundColor" systemColor="systemBackgroundColor"/>
<constraints>
<constraint firstItem="zaH-Pt-FkB" firstAttribute="centerX" secondItem="r7a-Qi-IKE" secondAttribute="centerX" id="0oM-i5-9OG"/>
<constraint firstAttribute="bottom" secondItem="WwA-Jn-1rz" secondAttribute="bottom" constant="6" id="71t-4W-LuP"/>
<constraint firstItem="yiz-ZZ-xxm" firstAttribute="leading" secondItem="yoB-8g-xXJ" secondAttribute="trailing" constant="2" id="Ggm-C5-Wcb"/>
<constraint firstAttribute="height" constant="113" id="MH5-pp-kd7"/>
<constraint firstItem="yoB-8g-xXJ" firstAttribute="centerX" secondItem="r7a-Qi-IKE" secondAttribute="centerX" constant="-9" id="Saa-J0-KwU"/>
<constraint firstAttribute="trailing" secondItem="WwA-Jn-1rz" secondAttribute="trailing" constant="16" id="YcU-Q9-sKB"/>
<constraint firstItem="WwA-Jn-1rz" firstAttribute="leading" secondItem="r7a-Qi-IKE" secondAttribute="leading" constant="16" id="auv-o8-JaK"/>
<constraint firstItem="WwA-Jn-1rz" firstAttribute="top" secondItem="yoB-8g-xXJ" secondAttribute="bottom" constant="6" id="m3G-Qk-pBp"/>
<constraint firstItem="zaH-Pt-FkB" firstAttribute="top" secondItem="r7a-Qi-IKE" secondAttribute="top" constant="10" id="maZ-g1-7I4"/>
<constraint firstItem="yiz-ZZ-xxm" firstAttribute="centerY" secondItem="yoB-8g-xXJ" secondAttribute="centerY" id="rIl-iA-pcw"/>
<constraint firstItem="yoB-8g-xXJ" firstAttribute="top" secondItem="zaH-Pt-FkB" secondAttribute="bottom" constant="6" id="ywl-ba-UsO"/>
</constraints>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
<integer key="value" value="8"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</view>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="22W-Pg-BGs">
<rect key="frame" x="16" y="167" width="280" height="229"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="1qh-1U-0g1">
<rect key="frame" x="19.000000000000007" y="25" width="47.999999999999993" height="48"/>
<color key="backgroundColor" red="0.72156862745098038" green="0.92156862745098034" blue="0.97647058823529409" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstAttribute="height" constant="48" id="Bvl-n0-GY5"/>
<constraint firstAttribute="width" constant="48" id="e9Z-Jy-yV7"/>
</constraints>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
<integer key="value" value="24"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="竞拍溢价" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="R5s-ew-2ma">
<rect key="frame" x="23.000000000000007" y="31.999999999999996" width="40" height="33.666666666666657"/>
<constraints>
<constraint firstAttribute="width" constant="40" id="55m-tS-xSt"/>
</constraints>
<fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/>
<color key="textColor" red="0.20392156862745098" green="0.54117647058823526" blue="0.83529411764705885" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="+" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="1nL-zB-s12">
<rect key="frame" x="79" y="35" width="12.666666666666671" height="28"/>
<constraints>
<constraint firstAttribute="height" constant="28" id="Npx-zw-09W"/>
</constraints>
<fontDescription key="fontDescription" type="system" weight="medium" pointSize="20"/>
<color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="pvx-IE-jQQ">
<rect key="frame" x="103.66666666666669" y="25" width="48" height="48"/>
<color key="backgroundColor" red="0.97254901960784312" green="0.90980392156862744" blue="0.78431372549019607" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstAttribute="height" constant="48" id="9wK-lu-5ww"/>
<constraint firstAttribute="width" constant="48" id="oXU-Bh-nt7"/>
</constraints>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
<integer key="value" value="24"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="=" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="2Ef-wH-HNE">
<rect key="frame" x="163.66666666666669" y="34" width="12.666666666666657" height="28"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<fontDescription key="fontDescription" type="system" weight="medium" pointSize="20"/>
<color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="收礼身价" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="FDt-UE-yKg">
<rect key="frame" x="107.66666666666669" y="31.999999999999996" width="40" height="33.666666666666657"/>
<constraints>
<constraint firstAttribute="width" constant="40" id="md1-1F-BXo"/>
</constraints>
<fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/>
<color key="textColor" red="0.92941176470588238" green="0.66666666666666663" blue="0.098039215686274508" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="TCX-JN-r9B">
<rect key="frame" x="189" y="13" width="72" height="72"/>
<color key="backgroundColor" red="0.6470588235294118" green="1" blue="0.76078431372549016" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstAttribute="width" constant="72" id="UFB-82-XSq"/>
<constraint firstAttribute="height" constant="72" id="h6t-2i-vCw"/>
</constraints>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
<integer key="value" value="36"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="实际身价" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="TJG-ml-Bip">
<rect key="frame" x="200.00000000000003" y="27.333333333333314" width="50" height="43"/>
<constraints>
<constraint firstAttribute="width" constant="50" id="Kof-yq-JSa"/>
</constraints>
<fontDescription key="fontDescription" type="system" weight="medium" pointSize="18"/>
<color key="textColor" red="0.0" green="0.53725490196078429" blue="0.15294117647058825" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="dJ6-LR-vgw">
<rect key="frame" x="16" y="98" width="117" height="119"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="1RH-Mf-SWP">
<rect key="frame" x="0.0" y="0.0" width="117" height="24"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="竞拍溢价" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="uK0-7X-IBc">
<rect key="frame" x="34.333333333333329" y="4.3333333333333144" width="48" height="15"/>
<fontDescription key="fontDescription" type="system" pointSize="12"/>
<color key="textColor" red="0.20392156862745098" green="0.54117647058823526" blue="0.83529411764705885" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<color key="backgroundColor" red="0.68235294117647061" green="0.92941176470588238" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstAttribute="height" constant="24" id="8em-ee-gLY"/>
<constraint firstItem="uK0-7X-IBc" firstAttribute="centerY" secondItem="1RH-Mf-SWP" secondAttribute="centerY" id="Q5j-gJ-Sxm"/>
<constraint firstItem="uK0-7X-IBc" firstAttribute="centerX" secondItem="1RH-Mf-SWP" secondAttribute="centerX" id="cha-7w-LSq"/>
</constraints>
</view>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="签约竞拍次数越多,签约成交比签约时身价更高,则竞拍溢价就越高" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="NRs-fX-FIN">
<rect key="frame" x="8" y="32" width="101" height="79"/>
<fontDescription key="fontDescription" type="system" pointSize="12"/>
<color key="textColor" red="0.29411764705882354" green="0.66274509803921566" blue="0.76862745098039209" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<color key="backgroundColor" red="0.89803921568627454" green="0.96862745098039216" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstAttribute="width" constant="117" id="4rA-dE-Rhv"/>
<constraint firstAttribute="trailing" secondItem="1RH-Mf-SWP" secondAttribute="trailing" id="5da-35-QcR"/>
<constraint firstItem="NRs-fX-FIN" firstAttribute="top" secondItem="1RH-Mf-SWP" secondAttribute="bottom" constant="8" id="QTq-Mw-KUH"/>
<constraint firstItem="NRs-fX-FIN" firstAttribute="leading" secondItem="dJ6-LR-vgw" secondAttribute="leading" constant="8" id="Wtk-ZE-Iu3"/>
<constraint firstAttribute="bottom" secondItem="NRs-fX-FIN" secondAttribute="bottom" constant="8" id="YMJ-9a-hmC"/>
<constraint firstItem="1RH-Mf-SWP" firstAttribute="top" secondItem="dJ6-LR-vgw" secondAttribute="top" id="Z3L-1R-FJy"/>
<constraint firstAttribute="trailing" secondItem="NRs-fX-FIN" secondAttribute="trailing" constant="8" id="kfY-Vy-yGv"/>
<constraint firstItem="1RH-Mf-SWP" firstAttribute="leading" secondItem="dJ6-LR-vgw" secondAttribute="leading" id="lmc-Ys-kzq"/>
</constraints>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
<integer key="value" value="8"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</view>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="5QI-g5-Etm">
<rect key="frame" x="144" y="98" width="117" height="119"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="16p-zb-VAB">
<rect key="frame" x="0.0" y="0.0" width="117" height="24"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="竞拍溢价" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="DfF-lh-oXh">
<rect key="frame" x="34.333333333333343" y="4.3333333333333144" width="48" height="15"/>
<fontDescription key="fontDescription" type="system" pointSize="12"/>
<color key="textColor" red="0.72549019607843135" green="0.57647058823529407" blue="0.11372549019607843" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<color key="backgroundColor" red="1" green="0.90196078431372551" blue="0.59215686274509804" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstItem="DfF-lh-oXh" firstAttribute="centerY" secondItem="16p-zb-VAB" secondAttribute="centerY" id="6If-AV-pYD"/>
<constraint firstItem="DfF-lh-oXh" firstAttribute="centerX" secondItem="16p-zb-VAB" secondAttribute="centerX" id="8Eb-hb-bCP"/>
<constraint firstAttribute="height" constant="24" id="Oeu-V9-5eq"/>
</constraints>
</view>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="签约竞拍次数越多,签约成交比签约时身价更高,则竞拍溢价就越高" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="M4h-lx-wJ4">
<rect key="frame" x="8" y="32" width="101" height="79"/>
<fontDescription key="fontDescription" type="system" pointSize="12"/>
<color key="textColor" red="0.92941176470588238" green="0.66666666666666663" blue="0.098039215686274508" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<color key="backgroundColor" red="0.96470588235294119" green="0.97254901960784312" blue="0.89803921568627454" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstItem="16p-zb-VAB" firstAttribute="leading" secondItem="5QI-g5-Etm" secondAttribute="leading" id="Bbm-E2-7J9"/>
<constraint firstAttribute="bottom" secondItem="M4h-lx-wJ4" secondAttribute="bottom" constant="8" id="GGC-6Y-cpC"/>
<constraint firstItem="M4h-lx-wJ4" firstAttribute="leading" secondItem="5QI-g5-Etm" secondAttribute="leading" constant="8" id="OLC-Xu-jcE"/>
<constraint firstItem="16p-zb-VAB" firstAttribute="top" secondItem="5QI-g5-Etm" secondAttribute="top" id="PQm-S7-LCt"/>
<constraint firstItem="M4h-lx-wJ4" firstAttribute="top" secondItem="16p-zb-VAB" secondAttribute="bottom" constant="8" id="bhY-eL-Te3"/>
<constraint firstAttribute="width" constant="117" id="fPg-ws-iOS"/>
<constraint firstAttribute="trailing" secondItem="16p-zb-VAB" secondAttribute="trailing" id="haZ-oi-Jfa"/>
<constraint firstAttribute="trailing" secondItem="M4h-lx-wJ4" secondAttribute="trailing" constant="8" id="wDq-f5-2aI"/>
</constraints>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
<integer key="value" value="8"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</view>
</subviews>
<color key="backgroundColor" systemColor="systemBackgroundColor"/>
<constraints>
<constraint firstItem="1qh-1U-0g1" firstAttribute="top" secondItem="22W-Pg-BGs" secondAttribute="top" constant="25" id="5aA-MU-VhR"/>
<constraint firstItem="FDt-UE-yKg" firstAttribute="centerY" secondItem="pvx-IE-jQQ" secondAttribute="centerY" id="729-Vm-24r"/>
<constraint firstAttribute="trailing" secondItem="TCX-JN-r9B" secondAttribute="trailing" constant="19" id="DIH-n9-8BY"/>
<constraint firstItem="TCX-JN-r9B" firstAttribute="centerY" secondItem="1qh-1U-0g1" secondAttribute="centerY" id="IFW-2s-j7V"/>
<constraint firstItem="R5s-ew-2ma" firstAttribute="centerY" secondItem="1qh-1U-0g1" secondAttribute="centerY" id="N9g-k4-GdM"/>
<constraint firstItem="pvx-IE-jQQ" firstAttribute="centerY" secondItem="1qh-1U-0g1" secondAttribute="centerY" id="PI4-ui-iG5"/>
<constraint firstItem="FDt-UE-yKg" firstAttribute="centerX" secondItem="pvx-IE-jQQ" secondAttribute="centerX" id="TPS-17-unD"/>
<constraint firstItem="5QI-g5-Etm" firstAttribute="top" secondItem="dJ6-LR-vgw" secondAttribute="top" id="VnE-Yk-Fs5"/>
<constraint firstItem="dJ6-LR-vgw" firstAttribute="leading" secondItem="22W-Pg-BGs" secondAttribute="leading" constant="16" id="afz-KP-jxq"/>
<constraint firstItem="5QI-g5-Etm" firstAttribute="bottom" secondItem="dJ6-LR-vgw" secondAttribute="bottom" id="cE5-G9-ELY"/>
<constraint firstAttribute="bottom" secondItem="dJ6-LR-vgw" secondAttribute="bottom" constant="12" id="cu7-kg-F1S"/>
<constraint firstItem="TJG-ml-Bip" firstAttribute="centerX" secondItem="TCX-JN-r9B" secondAttribute="centerX" id="dyH-i4-I9s"/>
<constraint firstItem="dJ6-LR-vgw" firstAttribute="top" secondItem="1qh-1U-0g1" secondAttribute="bottom" constant="25" id="e3D-aw-dQb"/>
<constraint firstItem="TJG-ml-Bip" firstAttribute="centerY" secondItem="TCX-JN-r9B" secondAttribute="centerY" id="fAq-7E-JQR"/>
<constraint firstItem="pvx-IE-jQQ" firstAttribute="leading" secondItem="1nL-zB-s12" secondAttribute="trailing" constant="12" id="gvw-jh-Rfk"/>
<constraint firstItem="1qh-1U-0g1" firstAttribute="leading" secondItem="22W-Pg-BGs" secondAttribute="leading" constant="19" id="h6D-gY-uge"/>
<constraint firstItem="1nL-zB-s12" firstAttribute="leading" secondItem="1qh-1U-0g1" secondAttribute="trailing" constant="12" id="tfl-1O-cAo"/>
<constraint firstAttribute="trailing" secondItem="5QI-g5-Etm" secondAttribute="trailing" constant="19" id="tt7-w6-uG8"/>
<constraint firstItem="1nL-zB-s12" firstAttribute="centerY" secondItem="1qh-1U-0g1" secondAttribute="centerY" id="vIW-PX-cda"/>
<constraint firstItem="R5s-ew-2ma" firstAttribute="centerX" secondItem="1qh-1U-0g1" secondAttribute="centerX" id="xP7-mU-bAf"/>
</constraints>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
<integer key="value" value="8"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</view>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="PHh-tS-kNh">
<rect key="frame" x="27" y="412" width="258" height="42"/>
<color key="backgroundColor" red="0.22745098039215686" green="0.73725490196078436" blue="0.42745098039215684" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstAttribute="height" constant="42" id="4KY-On-BUi"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
<state key="normal" title="确认">
<color key="titleColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</state>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
<integer key="value" value="21"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
<connections>
<action selector="commitAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="mL0-U7-wQJ"/>
</connections>
</button>
</subviews>
<color key="backgroundColor" systemColor="systemBackgroundColor"/>
<constraints>
<constraint firstItem="22W-Pg-BGs" firstAttribute="top" secondItem="r7a-Qi-IKE" secondAttribute="bottom" constant="8" id="33m-VS-2sZ"/>
<constraint firstAttribute="bottom" secondItem="0pu-br-WLc" secondAttribute="bottom" id="4e3-Y4-Tac"/>
<constraint firstAttribute="trailing" secondItem="PHh-tS-kNh" secondAttribute="trailing" constant="27" id="6W3-Sf-nfN"/>
<constraint firstItem="Cey-rm-4VM" firstAttribute="centerX" secondItem="bjS-Eu-Wht" secondAttribute="centerX" id="8p7-Yq-Bsl"/>
<constraint firstItem="22W-Pg-BGs" firstAttribute="trailing" secondItem="r7a-Qi-IKE" secondAttribute="trailing" id="9hR-zr-C7I"/>
<constraint firstItem="0pu-br-WLc" firstAttribute="top" secondItem="bjS-Eu-Wht" secondAttribute="top" id="CAS-bj-ppe"/>
<constraint firstItem="PHh-tS-kNh" firstAttribute="leading" secondItem="bjS-Eu-Wht" secondAttribute="leading" constant="27" id="F9D-GW-pPi"/>
<constraint firstAttribute="trailing" secondItem="r7a-Qi-IKE" secondAttribute="trailing" constant="16" id="Irf-7a-IAZ"/>
<constraint firstAttribute="width" constant="312" id="KlA-b8-6yJ"/>
<constraint firstItem="Cey-rm-4VM" firstAttribute="top" secondItem="bjS-Eu-Wht" secondAttribute="top" constant="11" id="MZ1-ir-rFg"/>
<constraint firstAttribute="bottom" secondItem="PHh-tS-kNh" secondAttribute="bottom" constant="16" id="RnS-Jh-Wrf"/>
<constraint firstItem="r7a-Qi-IKE" firstAttribute="leading" secondItem="bjS-Eu-Wht" secondAttribute="leading" constant="16" id="U7n-mt-ov1"/>
<constraint firstItem="PHh-tS-kNh" firstAttribute="top" secondItem="22W-Pg-BGs" secondAttribute="bottom" constant="16" id="Uie-am-bsR"/>
<constraint firstItem="ag3-iq-BzI" firstAttribute="top" secondItem="bjS-Eu-Wht" secondAttribute="top" constant="2" id="Vyo-LV-CcW"/>
<constraint firstItem="0pu-br-WLc" firstAttribute="leading" secondItem="bjS-Eu-Wht" secondAttribute="leading" id="aL1-WV-fhl"/>
<constraint firstItem="22W-Pg-BGs" firstAttribute="leading" secondItem="r7a-Qi-IKE" secondAttribute="leading" id="hEM-xo-DUO"/>
<constraint firstAttribute="trailing" secondItem="ag3-iq-BzI" secondAttribute="trailing" id="oMO-jd-Kff"/>
<constraint firstAttribute="trailing" secondItem="0pu-br-WLc" secondAttribute="trailing" id="tGt-Bl-B7G"/>
<constraint firstAttribute="height" constant="470" id="tsx-66-top"/>
<constraint firstItem="r7a-Qi-IKE" firstAttribute="top" secondItem="Cey-rm-4VM" secondAttribute="bottom" constant="11" id="wJM-pt-KcG"/>
</constraints>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
<integer key="value" value="10"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</view>
</subviews>
<viewLayoutGuide key="safeArea" id="vUN-kp-3ea"/>
<color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.29999999999999999" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstItem="bjS-Eu-Wht" firstAttribute="centerY" secondItem="vUN-kp-3ea" secondAttribute="centerY" id="XT7-vk-EsU"/>
<constraint firstItem="bjS-Eu-Wht" firstAttribute="centerX" secondItem="vUN-kp-3ea" secondAttribute="centerX" id="h5o-I1-Iu2"/>
</constraints>
<connections>
<outlet property="bgView" destination="bjS-Eu-Wht" id="7GC-AR-cpg"/>
<outlet property="closeBtn" destination="ag3-iq-BzI" id="a0h-Fk-P2z"/>
<outlet property="commitBtn" destination="PHh-tS-kNh" id="iOS-08-gnl"/>
<outlet property="currentPriceLabel" destination="yoB-8g-xXJ" id="ZmR-gN-kho"/>
</connections>
<point key="canvasLocation" x="139.69465648854961" y="19.718309859154932"/>
</view>
</objects>
<resources>
<image name="body_price_rule_bg" width="312" height="470"/>
<image name="room_upseat_coin" width="16" height="16"/>
<image name="wallet_close" width="11" height="11"/>
<systemColor name="systemBackgroundColor">
<color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
</systemColor>
</resources>
</document>

View File

@@ -45,6 +45,8 @@ typedef NS_ENUM(NSInteger) {
QXMainHeaderOptionTypeWallet = 35,
/// 礼物墙
QXMainHeaderOptionTypeGiftWall = 36,
/// 身价
QXMainHeaderOptionTypeBodyPrice = 37,
}QXMainHeaderOptionType;
@protocol QXMainHeaderViewDelegate <NSObject>

View File

@@ -56,6 +56,11 @@
@property (nonatomic, strong)UILabel *walletMoneyLabel;
@property (nonatomic, strong)UIButton *walletBtn;
@property (nonatomic, strong)UIImageView *bodyPriceBgImageView;
@property (nonatomic, strong)UILabel *bodyPriceBottomLabel;
@property (nonatomic, strong)UILabel *bodyPriceMoneyLabel;
@property (nonatomic, strong)UIButton *bodyPriceBtn;
@property (nonatomic, strong)UIImageView *giftWallBgImageView;
@property (nonatomic, strong)UILabel *giftWallTitleLabel;
@property (nonatomic, strong)UIButton *giftWallBtn;
@@ -240,7 +245,7 @@
self.walletTitleLabel.textColor = RGB16(0x929196);
[self.walletBgView addSubview:self.walletTitleLabel];
CGFloat walletWidth = (self.topBgView.width - 16*3) / 2;
CGFloat walletWidth = (self.topBgView.width - 16*4) / 3;
self.walletBgImageView = [[UIImageView alloc] initWithFrame:CGRectMake(self.topBgView.left, self.walletTitleLabel.bottom+8, walletWidth, 60)];
self.walletBgImageView.backgroundColor = RGB16(0xFFE38E);
[self.walletBgImageView addRoundedCornersWithRadius:8];
@@ -254,15 +259,35 @@
[self.walletBgView addSubview:self.walletBottomLabel];
self.walletMoneyLabel = [[UILabel alloc] initWithFrame:CGRectMake(self.walletBgImageView.left, self.walletBgImageView.top+11, walletWidth, 25)];
self.walletMoneyLabel = [[UILabel alloc] initWithFrame:CGRectMake(self.walletBgImageView.left, self.walletBgImageView.top+11, walletWidth, 27)];
self.walletMoneyLabel.text = @"0";
self.walletMoneyLabel.textAlignment = NSTextAlignmentCenter;
self.walletMoneyLabel.font = [UIFont fontWithName:@"DIN Condensed" size:25];
self.walletMoneyLabel.textColor = RGB16(0x222222);
[self.walletBgView addSubview:self.walletMoneyLabel];
self.bodyPriceBgImageView = [[UIImageView alloc] initWithFrame:CGRectMake(self.walletBgImageView.right+16, self.walletBgImageView.top, walletWidth, self.walletBgImageView.height)];
self.bodyPriceBgImageView.backgroundColor = RGB16(0xFFB68F);
[self.bodyPriceBgImageView addRoundedCornersWithRadius:8];
[self.walletBgView addSubview:self.bodyPriceBgImageView];
self.giftWallBgImageView = [[UIImageView alloc] initWithFrame:CGRectMake(self.walletBgImageView.right+16, self.walletBgImageView.top, walletWidth, self.walletBgImageView.height)];
self.bodyPriceBottomLabel = [[UILabel alloc] initWithFrame:CGRectMake(self.bodyPriceBgImageView.left, self.bodyPriceBgImageView.bottom-14-11, walletWidth, 14)];
self.bodyPriceBottomLabel.text = @"身价";
self.bodyPriceBottomLabel.textAlignment = NSTextAlignmentCenter;
self.bodyPriceBottomLabel.font = [UIFont systemFontOfSize:12];
self.bodyPriceBottomLabel.textColor = RGB16(0x333333);
[self.walletBgView addSubview:self.bodyPriceBottomLabel];
self.bodyPriceMoneyLabel = [[UILabel alloc] initWithFrame:CGRectMake(self.bodyPriceBgImageView.left, self.walletBgImageView.top+11, walletWidth, 27)];
self.bodyPriceMoneyLabel.text = @"1";
self.bodyPriceMoneyLabel.textAlignment = NSTextAlignmentCenter;
self.bodyPriceMoneyLabel.font = [UIFont fontWithName:@"DIN Condensed" size:25];
self.bodyPriceMoneyLabel.textColor = RGB16(0x222222);
[self.walletBgView addSubview:self.bodyPriceMoneyLabel];
self.giftWallBgImageView = [[UIImageView alloc] initWithFrame:CGRectMake(self.bodyPriceBgImageView.right+16, self.walletBgImageView.top, walletWidth, self.walletBgImageView.height)];
self.giftWallBgImageView.backgroundColor = RGB16(0xF1B3FF);
[self.giftWallBgImageView addRoundedCornersWithRadius:8];
[self.walletBgView addSubview:self.giftWallBgImageView];
@@ -281,6 +306,10 @@
self.giftWallBtn = [[UIButton alloc] initWithFrame:self.giftWallBgImageView.frame];
[self.giftWallBtn addTarget:self action:@selector(giftWalltAction) forControlEvents:(UIControlEventTouchUpInside)];
[self.walletBgView addSubview:self.giftWallBtn];
self.bodyPriceBtn = [[UIButton alloc] initWithFrame:self.bodyPriceBgImageView.frame];
[self.bodyPriceBtn addTarget:self action:@selector(bodyPriceAction) forControlEvents:(UIControlEventTouchUpInside)];
[self.walletBgView addSubview:self.bodyPriceBtn];
}
-(CGFloat)getHeight{
return self.walletBgView.bottom+6;
@@ -359,6 +388,12 @@
}
}
-(void)bodyPriceAction{
if (self.delegate && [self.delegate respondsToSelector:@selector(didClickOptionType:)]) {
[self.delegate didClickOptionType:QXMainHeaderOptionTypeBodyPrice];
}
}
-(void)gotoUserHomePageClick{
if (self.delegate && [self.delegate respondsToSelector:@selector(didClickOptionType:)]) {
@@ -367,6 +402,7 @@
}
-(void)setUserModel:(QXUserModel *)userModel{
_userModel = userModel;
self.nameLabel.text = userModel.market_value;
[self.userHeaderView setHeadIcon:userModel.avatar dress:userModel.dress];
[self.userHeaderView.nobilityImageView sd_setImageWithURL:[NSURL URLWithString:userModel.nobility_image]];
if ([userModel.nickname_color isExist]) {

View File

@@ -17,6 +17,8 @@ typedef NS_ENUM(NSInteger) {
QXMineServiceTypeBackpack = 42,
/// 设置
QXMineServiceTypeSetting = 43,
/// 家族
QXMineServiceTypeFamily = 80,
/// 帮助中心
QXMineServiceTypeHelp = 44,
/// 邀请

View File

@@ -165,12 +165,17 @@
md4.icon = @"service_setting";
md4.type = QXMineServiceTypeSetting;
QXServiceModel *md5 = [[QXServiceModel alloc] init];
md5.title = @"家族";
md5.icon = @"service_setting";
md5.type = QXMineServiceTypeFamily;
_serviceArray = [NSMutableArray arrayWithArray:@[
md1,
md2,
md3,
md4,
md5
]];
}
return _serviceArray;

View File

@@ -12,6 +12,7 @@ NS_ASSUME_NONNULL_BEGIN
@interface QXUserHomeHeaderView : UIView
@property (nonatomic,strong)QXUserHomeModel *model;
@property (nonatomic,strong)NSString *userId;
-(void)headerStartPlay;
@end
@interface QXTagImageCell : UICollectionViewCell

View File

@@ -17,8 +17,10 @@
#import "QXUserCpCardView.h"
#import "QXGiftWallViewController.h"
#import "QXHeartBeatSpaceViewController.h"
#import "QXUserHomePageViewController.h"
#import "QXHeartBeatSpaceViewController.h"
@interface QXUserHomeHeaderView()<UICollectionViewDelegate,UICollectionViewDataSource>
@interface QXUserHomeHeaderView()<UICollectionViewDelegate,UICollectionViewDataSource,QXUserCpCardViewDelegate>
//@property (nonatomic,strong) CKShimmerLabel * tempName;
@property (nonatomic,strong) QXSeatHeaderView* headerView;
@property (nonatomic,strong) UIView * whiteBgView;
@@ -57,8 +59,6 @@
self.backgroundColor = [UIColor clearColor];
self.headerView = [[QXSeatHeaderView alloc] initWithFrame:CGRectMake(32, 26, 70, 84)];
[self.headerView addRoundedCornersWithRadius:35];
[self addSubview:self.headerView];
[self.headerView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(32);
@@ -264,6 +264,7 @@
[self.whiteBgView addSubview:self.cpDressView];
self.cpCardView = [[QXUserCpCardView alloc] init];
self.cpCardView.delegate = self;
self.cpCardView.hidden = YES;
MJWeakSelf
[self.cpCardView addTapBlock:^(id _Nonnull obj) {
@@ -289,8 +290,15 @@
make.height.mas_equalTo(ScaleWidth(40));
make.top.equalTo(self.cpCardView.mas_bottom).offset(8);
}];
[self.whiteBgView bringSubviewToFront:self.playBtn];
[self bringSubviewToFront:self.followBtn];
}
-(void)headerStartPlay{
[self.headerView playHWDMP4];
[self.cpCardView headerStartPlay];
[self.cpDressView headerStartPlay];
}
-(void)giftWallAction{
QXGiftWallViewController *vc = [[QXGiftWallViewController alloc] init];
vc.userId = self.userId;
@@ -314,6 +322,21 @@
[[QXGlobal shareGlobal] chatWithUserID:self.model.user_id nickname:self.model.nickname avatar:self.model.avatar navagationController:self.navigationController];
}
}
-(void)didClickHeaderViewUserId:(NSString*)userId{
if ([userId isEqualToString:self.userId]) {
return;
}
QXUserHomePageViewController *vc = [[QXUserHomePageViewController alloc] init];
vc.user_id = userId;
[self.viewController.navigationController pushViewController:vc animated:YES];
}
-(void)didClickHeaderCardViewWithUserId:(NSString*)userId{
QXHeartBeatSpaceViewController *vc = [[QXHeartBeatSpaceViewController alloc] init];
vc.userId = userId;
[self.viewController.navigationController pushViewController:vc animated:YES];
}
-(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{
if (collectionView == self.collectionView) {
@@ -335,6 +358,10 @@
}
}
-(void)setUserId:(NSString *)userId{
_userId = userId;
self.cpCardView.userId = self.userId;
}
-(void)setModel:(QXUserHomeModel *)model{
_model = model;
// model.nickname = @"大家好撒客户端撒大厦尽快";

View File

@@ -19,7 +19,11 @@
_model = model;
self.nameLabel.text = model.title;
[self.dressImageView sd_setImageWithURL:[NSURL URLWithString:model.base_image]];
self.timeLabel.text = [NSString stringWithFormat:@"%@%@",model.remaining_day,QXText(@"天")];
if ([model.type isEqualToString:@"12"]) {
self.timeLabel.text = [NSString stringWithFormat:@"x%@",model.num];
}else{
self.timeLabel.text = [NSString stringWithFormat:@"%@%@",model.remaining_day,QXText(@"天")];
}
// if (model.is_using.intValue == 1) {
// self.selecteBtn.selected = NO;
// }else{

View File

@@ -11,21 +11,21 @@
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
<collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" id="gTV-IL-0wX" customClass="QXDressCell">
<rect key="frame" x="0.0" y="0.0" width="254" height="313"/>
<rect key="frame" x="0.0" y="0.0" width="104" height="137"/>
<autoresizingMask key="autoresizingMask"/>
<view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
<rect key="frame" x="0.0" y="0.0" width="254" height="313"/>
<rect key="frame" x="0.0" y="0.0" width="104" height="137"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="n0W-rO-R0R">
<rect key="frame" x="0.0" y="0.0" width="254" height="313"/>
<rect key="frame" x="0.0" y="0.0" width="104" height="137"/>
<subviews>
<button opaque="NO" userInteractionEnabled="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Gk9-jf-oXA">
<rect key="frame" x="0.0" y="0.0" width="254" height="313"/>
<rect key="frame" x="0.0" y="0.0" width="104" height="137"/>
<inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
</button>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="i9y-iF-N7k">
<rect key="frame" x="10" y="281" width="234" height="21"/>
<rect key="frame" x="10" y="105" width="84" height="21"/>
<constraints>
<constraint firstAttribute="height" constant="21" id="rrg-mb-mKp"/>
</constraints>
@@ -34,7 +34,7 @@
<nil key="highlightedColor"/>
</label>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="dze-FS-DlP">
<rect key="frame" x="10" y="25" width="234" height="246"/>
<rect key="frame" x="10" y="25" width="84" height="70"/>
</imageView>
</subviews>
<constraints>
@@ -58,9 +58,9 @@
</userDefinedRuntimeAttributes>
</view>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Jon-rv-RWs">
<rect key="frame" x="213.66666666666666" y="0.0" width="40.333333333333343" height="15"/>
<rect key="frame" x="63.666666666666657" y="0.0" width="40.333333333333343" height="15"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="gift_number_bg" translatesAutoresizingMaskIntoConstraints="NO" id="acA-Gl-J3f">
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="gift_number_bg" translatesAutoresizingMaskIntoConstraints="NO" id="acA-Gl-J3f">
<rect key="frame" x="0.0" y="0.0" width="40.333333333333336" height="15"/>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="30天" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="fQr-Il-R17">
@@ -107,6 +107,6 @@
</collectionViewCell>
</objects>
<resources>
<image name="gift_number_bg" width="35" height="13"/>
<image name="gift_number_bg" width="34" height="16"/>
</resources>
</document>

View File

@@ -0,0 +1,17 @@
//
// QXHeartBeatLevelRuleView.h
// QXLive
//
// Created by 启星 on 2025/11/22.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@interface QXHeartBeatLevelRuleView : UIView
@property (nonatomic,strong)NSString*rule;
-(void)showInView:(UIView *)view;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,123 @@
//
// QXHeartBeatLevelRuleView.m
// QXLive
//
// Created by on 2025/11/22.
//
#import "QXHeartBeatLevelRuleView.h"
#import <WebKit/WebKit.h>
@interface QXHeartBeatLevelRuleView()
@property(nonatomic,strong)WKWebView *contentWebView;
@property(nonatomic,strong)UIView* bgView;
@property(nonatomic,strong)UIButton* closeBtn;
@end
@implementation QXHeartBeatLevelRuleView
- (instancetype)init
{
self = [super init];
if (self) {
self.frame = CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
[self initSubviews];
}
return self;
}
-(void)initSubviews{
self.backgroundColor = [UIColor colorWithWhite:0.0 alpha:0.3];
self.bgView = [[UIView alloc] initWithFrame:CGRectMake((self.width-ScaleWidth(312))/2, (self.height-ScaleWidth(492))/2-40, ScaleWidth(312), ScaleWidth(492))];
[self.bgView addRoundedCornersWithRadius:16 byRoundingCorners:(UIRectCornerTopLeft|UIRectCornerTopRight)];
[self addSubview:self.bgView];
[self.bgView addSubview:self.contentWebView];
self.closeBtn = [[UIButton alloc] initWithFrame:CGRectMake((self.width-40)/2, self.bgView.bottom+10, 40, 40)];
[self.closeBtn setBackgroundImage:[UIImage imageNamed:@"home_white_close"] forState:(UIControlStateNormal)];
[self.closeBtn addTarget:self action:@selector(closeAction) forControlEvents:(UIControlEventTouchUpInside)];
[self addSubview:self.closeBtn];
[self.closeBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.height.mas_equalTo(40);
make.centerX.equalTo(self);
make.top.mas_equalTo(self.bgView.bottom+10);
}];
}
-(void)setRule:(NSString *)rule{
_rule = rule;
[self loadData];
}
- (void)loadData {
NSURL* url=[NSURL URLWithString:self.rule];
NSURLRequest *request =[NSURLRequest requestWithURL:url];
[self.contentWebView loadRequest:request];
}
-(void)closeAction{
[self hide];
}
#pragma mark - getters and setters
- (WKWebView *)contentWebView {
if (!_contentWebView) {
//
WKWebViewConfiguration * configuration = [[WKWebViewConfiguration alloc]init];
//
configuration.selectionGranularity = YES;
// webpr
configuration.processPool = [[WKProcessPool alloc] init];
//, jsoc(OCURL)
WKUserContentController * UserContentController = [[WKUserContentController alloc]init];
//
configuration.suppressesIncrementalRendering = NO;
//
configuration.preferences.javaScriptEnabled = YES;
configuration.preferences.javaScriptCanOpenWindowsAutomatically = YES;
configuration.userContentController = UserContentController;
// iOS9iOS8
if ([[UIDevice currentDevice].systemVersion floatValue] >= 9.0) {
//
configuration.allowsAirPlayForMediaPlayback = YES;
// 线
configuration.allowsInlineMediaPlayback = YES;
// NOios8
_contentWebView.allowsBackForwardNavigationGestures = YES;
}
_contentWebView = [[WKWebView alloc] initWithFrame:CGRectMake(0, 0, self.bgView.width, self.bgView.height) configuration:configuration];
_contentWebView.backgroundColor = UIColor.clearColor;
[_contentWebView addRoundedCornersWithRadius:6];
_contentWebView.opaque = NO;
//
[_contentWebView sizeToFit];
_contentWebView.scrollView.showsVerticalScrollIndicator = NO;
_contentWebView.scrollView.backgroundColor = [UIColor clearColor];
_contentWebView.scrollView.bounces = NO;
//
}
return _contentWebView;
}
-(void)showInView:(UIView *)view{
self.bgView.y = -SCREEN_HEIGHT;
[view addSubview:self];
[UIView animateWithDuration:0.3 animations:^{
self.bgView.y = (self.height-ScaleWidth(492))/2-40;
} completion:^(BOOL finished) {
self.closeBtn.hidden = NO;
}];
}
-(void)hide{
self.closeBtn.hidden = YES;
[UIView animateWithDuration:0.3 animations:^{
self.bgView.y = SCREEN_HEIGHT;
} completion:^(BOOL finished) {
[self removeFromSuperview];
}];
}
@end

View File

@@ -0,0 +1,22 @@
//
// QXHeartBeatSpaceRecordCell.h
// QXLive
//
// Created by 启星 on 2025/11/22.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@interface QXHeartBeatSpaceRecordCell : UITableViewCell
@property (weak, nonatomic) IBOutlet QXSeatHeaderView *headerView;
@property (weak, nonatomic) IBOutlet UILabel *nameLabel;
@property (weak, nonatomic) IBOutlet UILabel *timeLabel;
@property (weak, nonatomic) IBOutlet UILabel *contentLabel;
@property (strong, nonatomic)QXUserHeartBeatSpaceLogModel *model;
@property (strong, nonatomic)NSString *userId;
+(instancetype)cellWithTableView:(UITableView *)tableView;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,59 @@
//
// QXHeartBeatSpaceRecordCell.m
// QXLive
//
// Created by on 2025/11/22.
//
#import "QXHeartBeatSpaceRecordCell.h"
@implementation QXHeartBeatSpaceRecordCell
+(instancetype)cellWithTableView:(UITableView *)tableView{
static NSString *cellId = @"QXHeartBeatSpaceRecordCell";
QXHeartBeatSpaceRecordCell *cell = [tableView dequeueReusableCellWithIdentifier:cellId];
if (!cell) {
cell = [[NSBundle mainBundle] loadNibNamed:cellId owner:nil options:nil].lastObject;
cell.backgroundColor = [UIColor clearColor];
cell.contentView.backgroundColor = [UIColor clearColor];
}
return cell;
}
-(void)setUserId:(NSString *)userId{
_userId = userId;
}
-(void)setModel:(QXUserHeartBeatSpaceLogModel *)model{
_model = model;
[self.headerView setHeadIcon:model.from_user_info.avatar dress:model.from_user_info.dress];
NSDate *date = [NSDate dateWithTimeIntervalSince1970:model.createtime.longLongValue]; //,1000 , 1000
NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";
NSString*time = [formatter stringFromDate:date];
self.timeLabel.text = time;
self.nameLabel.text = model.from_user_info.nickname;
UIColor *nameColor = RGB16(0xFF53CC);
UIColor *contentNameColor = RGB16(0x4A89FF);
NSString *content = [NSString stringWithFormat:@"%@",model.remark];
NSMutableAttributedString *attr = [[NSMutableAttributedString alloc] initWithString:content];
if ([model.from_user_id isEqualToString:self.userId] ) {
self.nameLabel.textColor = nameColor;
[attr yy_setColor:contentNameColor range:[content rangeOfString:model.to_user_info.nickname]];
}else{
self.nameLabel.textColor = contentNameColor;
[attr yy_setColor:nameColor range:[content rangeOfString:model.to_user_info.nickname]];
}
self.contentLabel.attributedText = attr;
}
- (void)awakeFromNib {
[super awakeFromNib];
// Initialization code
}
- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
[super setSelected:selected animated:animated];
// Configure the view for the selected state
}
@end

View File

@@ -0,0 +1,86 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23504" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
<device id="retina6_12" orientation="portrait" appearance="light"/>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23506"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
<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"/>
<tableViewCell contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" rowHeight="307" id="KGk-i7-Jjw" customClass="QXHeartBeatSpaceRecordCell">
<rect key="frame" x="0.0" y="0.0" width="516" height="307"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="KGk-i7-Jjw" id="H2p-sc-9uM">
<rect key="frame" x="0.0" y="0.0" width="516" height="307"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="kDB-P0-eAc" customClass="QXSeatHeaderView">
<rect key="frame" x="16" y="16" width="48" height="48"/>
<constraints>
<constraint firstAttribute="width" constant="48" id="2z8-8O-4vb"/>
<constraint firstAttribute="height" constant="48" id="aX5-8B-RZa"/>
</constraints>
</view>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ZRa-V2-B3h">
<rect key="frame" x="72" y="20" width="35.333333333333343" height="20"/>
<constraints>
<constraint firstAttribute="height" constant="20" id="2S3-wj-dYF"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<color key="textColor" red="1" green="0.32549019607843138" blue="0.80000000000000004" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="uCL-M4-5Hx">
<rect key="frame" x="72" y="68" width="408" height="223"/>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="3qb-wi-G90">
<rect key="frame" x="16" y="306" width="484" height="1"/>
<color key="backgroundColor" red="0.81568627450980391" green="0.81568627450980391" blue="0.81568627450980391" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstAttribute="height" constant="1" id="wlx-KN-3DQ"/>
</constraints>
</view>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="AYF-oO-8tq">
<rect key="frame" x="72" y="43" width="428" height="17"/>
<constraints>
<constraint firstAttribute="height" constant="17" id="B9l-Hd-p4f"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="12"/>
<color key="textColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<constraints>
<constraint firstAttribute="trailing" secondItem="3qb-wi-G90" secondAttribute="trailing" constant="16" id="91k-0N-Wpr"/>
<constraint firstItem="ZRa-V2-B3h" firstAttribute="top" secondItem="kDB-P0-eAc" secondAttribute="top" constant="4" id="Bny-jR-cys"/>
<constraint firstAttribute="bottom" secondItem="uCL-M4-5Hx" secondAttribute="bottom" constant="16" id="CrK-CK-4Hs"/>
<constraint firstItem="uCL-M4-5Hx" firstAttribute="leading" secondItem="ZRa-V2-B3h" secondAttribute="leading" id="P89-5y-Jqq"/>
<constraint firstAttribute="trailingMargin" secondItem="uCL-M4-5Hx" secondAttribute="trailing" constant="16" id="VUI-pF-Aev"/>
<constraint firstItem="kDB-P0-eAc" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="16" id="Xor-lq-pkP"/>
<constraint firstItem="uCL-M4-5Hx" firstAttribute="top" secondItem="AYF-oO-8tq" secondAttribute="bottom" constant="8" id="XuR-uq-ICR"/>
<constraint firstAttribute="bottom" secondItem="3qb-wi-G90" secondAttribute="bottom" id="YpW-IW-hTe"/>
<constraint firstAttribute="trailing" secondItem="AYF-oO-8tq" secondAttribute="trailing" constant="16" id="fAd-RQ-39L"/>
<constraint firstItem="kDB-P0-eAc" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" constant="16" id="h9b-b5-5UI"/>
<constraint firstItem="ZRa-V2-B3h" firstAttribute="leading" secondItem="kDB-P0-eAc" secondAttribute="trailing" constant="8" id="hLc-EK-j17"/>
<constraint firstItem="AYF-oO-8tq" firstAttribute="leading" secondItem="ZRa-V2-B3h" secondAttribute="leading" id="jhq-zF-K72"/>
<constraint firstItem="3qb-wi-G90" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="16" id="sub-hr-L9S"/>
<constraint firstItem="AYF-oO-8tq" firstAttribute="bottom" secondItem="kDB-P0-eAc" secondAttribute="bottom" constant="-4" id="u8f-kW-vSK"/>
</constraints>
</tableViewCellContentView>
<viewLayoutGuide key="safeArea" id="aW0-zy-SZf"/>
<connections>
<outlet property="contentLabel" destination="uCL-M4-5Hx" id="Tco-Mw-PN0"/>
<outlet property="headerView" destination="kDB-P0-eAc" id="qMe-nZ-45F"/>
<outlet property="nameLabel" destination="ZRa-V2-B3h" id="uYk-gZ-QRb"/>
<outlet property="timeLabel" destination="AYF-oO-8tq" id="WLP-Ta-oye"/>
</connections>
<point key="canvasLocation" x="287.02290076335879" y="112.32394366197184"/>
</tableViewCell>
</objects>
</document>

View File

@@ -119,6 +119,7 @@
-(void)setUserId:(NSString *)userId{
_userId = userId;
self.cpCardView.userId = userId;
self.page = 1;
[self getList];
}
@@ -159,6 +160,7 @@
QXMoreIntimateViewController *vc = [[QXMoreIntimateViewController alloc] init];
vc.userId = self.userId;
vc.relation_id = md.relation_list.firstObject.relation_id;
vc.relation_name = md.relation_name;
[self.viewController.navigationController pushViewController:vc animated:YES];
}
@@ -175,11 +177,13 @@
if (md.relation_list.count > 1) {
QXIntimateListCell*cell = [QXIntimateListCell cellWithTableView:tableView];
QXRoomBestFriendListModel *md = self.dataArray[indexPath.section];
cell.userId = self.userId;
cell.model = md;
return cell;
}else{
MJWeakSelf
QXIntimateMoreListCell *cell = [QXIntimateMoreListCell cellWithTableView:tableView];
cell.userId = self.userId;
cell.model = md.relation_list.firstObject;
cell.deleteSuccessBlock = ^(QXRelationshipListModel * _Nonnull model) {
weakSelf.page = 1;
@@ -235,7 +239,7 @@
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
QXRoomBestFriendListModel *md = self.dataArray[indexPath.section];
if (md.relation_list.count > 1) {
if (md.relation_list.count == 1) {
return ScaleWidth(92)+18;
}else{
if (md.relation_list.count == 0) {

View File

@@ -6,11 +6,13 @@
//
#import <UIKit/UIKit.h>
#import "QXUserCpCardView.h"
NS_ASSUME_NONNULL_BEGIN
@interface QXIntimateCpCell : UITableViewCell
@property (nonatomic,strong)QXUserCpInfoModel *model;
@property (nonatomic,strong)NSString *userId;
@property (nonatomic,weak)id<QXUserCpCardViewDelegate>delegate;
+(instancetype)cellWithTableView:(UITableView *)tableView;
@end

View File

@@ -6,8 +6,8 @@
//
#import "QXIntimateCpCell.h"
#import "QXUserCpCardView.h"
@interface QXIntimateCpCell()
@interface QXIntimateCpCell()<QXUserCpCardViewDelegate>
@property (nonatomic,strong)QXUserCpCardView *cardView;
@end
@implementation QXIntimateCpCell
@@ -34,9 +34,13 @@
_model = model;
self.cardView.model = model;
}
-(void)setUserId:(NSString *)userId{
_userId = userId;
self.cardView.userId = self.userId;
}
-(void)initSubviews{
self.cardView = [[QXUserCpCardView alloc] init];
self.cardView.delegate = self;
[self.contentView addSubview:self.cardView];
[self.cardView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(24);
@@ -44,6 +48,17 @@
make.top.bottom.equalTo(self.contentView);
}];
}
-(void)didClickHeaderCardViewWithUserId:(NSString *)userId{
if (self.delegate && [self.delegate respondsToSelector:@selector(didClickHeaderCardViewWithUserId:)]) {
[self.delegate didClickHeaderCardViewWithUserId:userId];
}
}
-(void)didClickHeaderViewUserId:(NSString *)userId{
if (self.delegate && [self.delegate respondsToSelector:@selector(didClickHeaderViewUserId:)]) {
[self.delegate didClickHeaderViewUserId:userId];
}
}
- (void)awakeFromNib {
[super awakeFromNib];
// Initialization code

View File

@@ -11,6 +11,7 @@ NS_ASSUME_NONNULL_BEGIN
@interface QXIntimateListCell : UITableViewCell
@property (nonatomic,strong)QXRoomBestFriendListModel *model;
@property (nonatomic,strong)NSString *userId;
+(instancetype)cellWithTableView:(UITableView *)tableView;
@end

View File

@@ -7,7 +7,7 @@
#import "QXIntimateListCell.h"
#import "QXIntimateUserCell.h"
#import "QXUserHomePageViewController.h"
@interface QXIntimateListCell()<UICollectionViewDataSource,UICollectionViewDelegate>
@property (nonatomic,strong)UICollectionView *collectionView;
@end
@@ -68,9 +68,22 @@
}
-(__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
QXIntimateUserCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"QXIntimateUserCell" forIndexPath:indexPath];
cell.userId = self.userId;
cell.model = self.model.relation_list[indexPath.row];
return cell;
}
-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{
QXRelationshipListModel *md = self.model.relation_list[indexPath.row];
NSString *userId = @"";
if ([md.user_id1 isEqualToString:self.userId]) {
userId = md.user_id2;
}else{
userId = md.user_id1;
}
QXUserHomePageViewController *vc = [[QXUserHomePageViewController alloc] init];
vc.user_id = userId;
[self.viewController.navigationController pushViewController:vc animated:YES];
}
- (void)awakeFromNib {
[super awakeFromNib];
// Initialization code

View File

@@ -8,7 +8,12 @@
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@protocol QXIntimateMoreListCellDelegate <NSObject>
@optional
-(void)didClickHeaderWithUserId:(NSString*)userId;
@end
@interface QXIntimateMoreListCell : UITableViewCell
@property (weak, nonatomic) IBOutlet QXSeatHeaderView *leftHeaderView;
@property (weak, nonatomic) IBOutlet UIImageView *leftSexImageView;
@@ -18,8 +23,10 @@ NS_ASSUME_NONNULL_BEGIN
@property (weak, nonatomic) IBOutlet UILabel *rightNameLabel;
@property (weak, nonatomic) IBOutlet UILabel *timeLabel;
@property (nonatomic,strong)QXRelationshipListModel *model;
@property (nonatomic,strong)NSString *userId;
@property (nonatomic,copy)void(^topSuccessBlock)(QXRelationshipListModel*model);
@property (nonatomic,copy)void(^deleteSuccessBlock)(QXRelationshipListModel*model);
@property (nonatomic,weak)id<QXIntimateMoreListCellDelegate>delegate;
+(instancetype)cellWithTableView:(UITableView *)tableView;
@end

View File

@@ -67,25 +67,41 @@
}];
}
- (IBAction)leftAction:(id)sender {
if (self.delegate && [self.delegate respondsToSelector:@selector(didClickHeaderWithUserId:)]) {
[self.delegate didClickHeaderWithUserId:self.userId];
}
}
- (IBAction)rightAction:(id)sender {
NSString *userId = @"";
if ([self.model.user_id1 isEqualToString:self.userId]) {
userId = self.model.user_id2;
}else{
userId = self.model.user_id1;
}
if (self.delegate && [self.delegate respondsToSelector:@selector(didClickHeaderWithUserId:)]) {
[self.delegate didClickHeaderWithUserId:userId];
}
}
-(void)setModel:(QXRelationshipListModel *)model{
_model = model;
if ([model.user_id1 isEqualToString:QXGlobal.shareGlobal.loginModel.user_id]) {
[self.leftHeaderView setHeadIcon:model.avatar2 dress:@""];
self.leftNameLabel.text = model.nickname2;
self.leftSexImageView.image = [UIImage imageNamed:model.sex2.intValue == 1?@"user_sex_boy":@"user_sex_girl"];
[self.rightHeaderView setHeadIcon:model.avatar1 dress:@""];
self.rightNameLabel.text = model.nickname1;
self.rightSexImageView.image = [UIImage imageNamed:model.sex1.intValue == 1?@"user_sex_boy":@"user_sex_girl"];
}else{
if ([model.user_id1 isEqualToString:self.userId]) {
[self.leftHeaderView setHeadIcon:model.avatar1 dress:@""];
self.leftNameLabel.text = model.nickname1;
self.leftSexImageView.image = [UIImage imageNamed:model.sex1.intValue == 1?@"user_sex_boy":@"user_sex_girl"];
[self.rightHeaderView setHeadIcon:model.avatar2 dress:@""];
self.rightNameLabel.text = model.nickname2;
self.rightSexImageView.image = [UIImage imageNamed:model.sex2.intValue == 1?@"user_sex_boy":@"user_sex_girl"];
}else{
[self.leftHeaderView setHeadIcon:model.avatar2 dress:@""];
self.leftNameLabel.text = model.nickname2;
self.leftSexImageView.image = [UIImage imageNamed:model.sex2.intValue == 1?@"user_sex_boy":@"user_sex_girl"];
[self.rightHeaderView setHeadIcon:model.avatar1 dress:@""];
self.rightNameLabel.text = model.nickname1;
self.rightSexImageView.image = [UIImage imageNamed:model.sex2.intValue == 1?@"user_sex_boy":@"user_sex_girl"];
}
NSTimeInterval currentTime = [[NSDate date] timeIntervalSince1970];
long long milliseconds = (long long)(currentTime);

View File

@@ -30,6 +30,19 @@
<constraint firstAttribute="width" constant="50" id="f4E-eT-Fu8"/>
</constraints>
</view>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="eAs-09-73J">
<rect key="frame" x="46.666666666666671" y="66" width="33" height="16"/>
<fontDescription key="fontDescription" type="system" pointSize="13"/>
<color key="textColor" red="0.36078431372549019" green="0.16470588235294117" blue="0.44313725490196076" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="xap-Up-DHk">
<rect key="frame" x="38" y="12" width="50" height="70"/>
<inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
<connections>
<action selector="leftAction:" destination="KGk-i7-Jjw" eventType="touchUpInside" id="r31-OZ-CWl"/>
</connections>
</button>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="fJj-mx-2yM">
<rect key="frame" x="72" y="46" width="16" height="16"/>
<constraints>
@@ -70,35 +83,44 @@
<color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="eAs-09-73J">
<rect key="frame" x="46.666666666666671" y="66" width="33" height="16"/>
<fontDescription key="fontDescription" type="system" pointSize="13"/>
<color key="textColor" red="0.36078431372549019" green="0.16470588235294117" blue="0.44313725490196076" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="tuv-zg-sBW">
<rect key="frame" x="343.66666666666669" y="66" width="33" height="16"/>
<fontDescription key="fontDescription" type="system" pointSize="13"/>
<color key="textColor" red="0.36078431372549019" green="0.16470588235294117" blue="0.44313725490196076" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="SsY-uu-WFL">
<rect key="frame" x="335" y="12" width="50" height="70"/>
<inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
<connections>
<action selector="rightAction:" destination="KGk-i7-Jjw" eventType="touchUpInside" id="c6p-5f-wxW"/>
</connections>
</button>
</subviews>
<constraints>
<constraint firstItem="50s-uU-EKD" firstAttribute="centerY" secondItem="pS6-S4-a2G" secondAttribute="centerY" id="5g4-vp-EYv"/>
<constraint firstItem="SsY-uu-WFL" firstAttribute="top" secondItem="50s-uU-EKD" secondAttribute="top" id="8be-wg-JP2"/>
<constraint firstItem="8wc-ZY-rQa" firstAttribute="top" secondItem="dAK-uZ-bVb" secondAttribute="bottom" constant="5" id="8rk-dg-kaQ"/>
<constraint firstItem="fJj-mx-2yM" firstAttribute="trailing" secondItem="pS6-S4-a2G" secondAttribute="trailing" id="BEj-jg-gAB"/>
<constraint firstItem="dAK-uZ-bVb" firstAttribute="top" secondItem="9uF-c2-o0x" secondAttribute="top" constant="24" id="D9p-BA-KBw"/>
<constraint firstItem="6nc-bo-ejr" firstAttribute="bottom" secondItem="50s-uU-EKD" secondAttribute="bottom" id="FGe-n1-Wks"/>
<constraint firstItem="pS6-S4-a2G" firstAttribute="leading" secondItem="9uF-c2-o0x" secondAttribute="leading" constant="38" id="H5c-Mz-Qma"/>
<constraint firstItem="SsY-uu-WFL" firstAttribute="leading" secondItem="50s-uU-EKD" secondAttribute="leading" id="Rl2-c0-BBe"/>
<constraint firstItem="dAK-uZ-bVb" firstAttribute="centerX" secondItem="9uF-c2-o0x" secondAttribute="centerX" id="VG0-8q-Lrq"/>
<constraint firstAttribute="trailing" secondItem="50s-uU-EKD" secondAttribute="trailing" constant="38" id="Wh8-QI-j4t"/>
<constraint firstItem="xap-Up-DHk" firstAttribute="leading" secondItem="pS6-S4-a2G" secondAttribute="leading" id="YQL-gI-xBB"/>
<constraint firstItem="pS6-S4-a2G" firstAttribute="top" secondItem="9uF-c2-o0x" secondAttribute="top" constant="12" id="YtX-oa-Z5o"/>
<constraint firstItem="SsY-uu-WFL" firstAttribute="bottom" secondItem="tuv-zg-sBW" secondAttribute="bottom" id="a00-qT-gYV"/>
<constraint firstItem="fJj-mx-2yM" firstAttribute="bottom" secondItem="pS6-S4-a2G" secondAttribute="bottom" id="a5l-4I-UsC"/>
<constraint firstItem="tuv-zg-sBW" firstAttribute="centerX" secondItem="50s-uU-EKD" secondAttribute="centerX" id="eA4-hx-xId"/>
<constraint firstItem="eAs-09-73J" firstAttribute="top" secondItem="pS6-S4-a2G" secondAttribute="bottom" constant="4" id="inp-kG-exH"/>
<constraint firstItem="6nc-bo-ejr" firstAttribute="trailing" secondItem="50s-uU-EKD" secondAttribute="trailing" id="j7A-eO-KSJ"/>
<constraint firstItem="xap-Up-DHk" firstAttribute="top" secondItem="pS6-S4-a2G" secondAttribute="top" id="k1J-S0-BPd"/>
<constraint firstItem="SsY-uu-WFL" firstAttribute="trailing" secondItem="50s-uU-EKD" secondAttribute="trailing" id="rQE-om-5xf"/>
<constraint firstItem="eAs-09-73J" firstAttribute="centerX" secondItem="pS6-S4-a2G" secondAttribute="centerX" id="smC-jH-4iI"/>
<constraint firstItem="xap-Up-DHk" firstAttribute="bottom" secondItem="eAs-09-73J" secondAttribute="bottom" id="ssk-yf-L3c"/>
<constraint firstItem="8wc-ZY-rQa" firstAttribute="centerX" secondItem="9uF-c2-o0x" secondAttribute="centerX" id="uKd-PA-s9w"/>
<constraint firstItem="xap-Up-DHk" firstAttribute="trailing" secondItem="pS6-S4-a2G" secondAttribute="trailing" id="v5j-a8-69s"/>
<constraint firstItem="tuv-zg-sBW" firstAttribute="top" secondItem="50s-uU-EKD" secondAttribute="bottom" constant="4" id="yjp-7F-Gwe"/>
</constraints>
</view>

View File

@@ -14,6 +14,7 @@ NS_ASSUME_NONNULL_BEGIN
@property (weak, nonatomic) IBOutlet UILabel *nameLabel;
@property (weak, nonatomic) IBOutlet QXSeatHeaderView *headerView;
@property (weak, nonatomic) IBOutlet UIImageView *sexImageView;
@property (nonatomic,strong)NSString* userId;
@property (nonatomic,strong)QXRelationshipListModel *model;
@end

View File

@@ -10,7 +10,7 @@
@implementation QXIntimateUserCell
-(void)setModel:(QXRelationshipListModel *)model{
_model = model;
if ([model.user_id1 isEqualToString:QXGlobal.shareGlobal.loginModel.user_id]) {
if ([model.user_id1 isEqualToString:self.userId]) {
[self.headerView setHeadIcon:model.avatar2 dress:@""];
self.nameLabel.text = model.nickname2;
self.sexImageView.image = [UIImage imageNamed:model.sex2.intValue == 1?@"user_sex_boy":@"user_sex_girl"];
@@ -19,9 +19,15 @@
self.nameLabel.text = model.nickname1;
self.sexImageView.image = [UIImage imageNamed:model.sex1.intValue == 1?@"user_sex_boy":@"user_sex_girl"];
}
self.timeLabel.text = [NSString getTimeWithSecond:model.end_time.longLongValue];
NSTimeInterval currentTime = [[NSDate date] timeIntervalSince1970];
long long milliseconds = (long long)(currentTime);
NSInteger time = model.end_time.longLongValue - milliseconds;
self.timeLabel.text = [NSString stringWithFormat:@" %@ ",[NSString getTimeWithSecond:time]];
}
-(void)setUserId:(NSString *)userId{
_userId = userId;
}
- (void)awakeFromNib {
[super awakeFromNib];
// Initialization code

View File

@@ -0,0 +1,29 @@
//
// QXFamilyMemberCell.h
// QXLive
//
// Created by 启星 on 2025/11/26.
//
#import <UIKit/UIKit.h>
#import "QXFamilyModel.h"
NS_ASSUME_NONNULL_BEGIN
@interface QXFamilyMemberCell : UITableViewCell
@property (weak, nonatomic) IBOutlet QXSeatHeaderView *headerView;
@property (weak, nonatomic) IBOutlet UICollectionView *collectionView;
@property (weak, nonatomic) IBOutlet UICollectionViewFlowLayout *flowLayout;
@property (weak, nonatomic) IBOutlet UILabel *dayLabel;
@property (weak, nonatomic) IBOutlet UILabel *nameLabel;
@property (weak, nonatomic) IBOutlet UILabel *timesLabel;
@property (weak, nonatomic) IBOutlet UIButton *priceBtn;
@property (weak, nonatomic) IBOutlet UILabel *onlineLabel;
@property (weak, nonatomic) IBOutlet UIButton *todayPriceBtn;
@property (weak, nonatomic) IBOutlet UIButton *yestodayPriceBtn;
@property (weak, nonatomic) IBOutlet UIButton *continueBtn;
@property (strong, nonatomic) QXFamilyMemberModel *model;
+(instancetype)cellWithTableView:(UITableView *)tableView;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,82 @@
//
// QXFamilyMemberCell.m
// QXLive
//
// Created by on 2025/11/26.
//
#import "QXFamilyMemberCell.h"
#import "QXUserHomeHeaderView.h"
#import "QXCustomAlertView.h"
@interface QXFamilyMemberCell()<UICollectionViewDataSource,UICollectionViewDelegate>
@end
@implementation QXFamilyMemberCell
+(instancetype)cellWithTableView:(UITableView *)tableView{
static NSString *cellId = @"QXFamilyMemberCell";
QXFamilyMemberCell *cell = [tableView dequeueReusableCellWithIdentifier:cellId];
if (!cell) {
cell = [[NSBundle mainBundle] loadNibNamed:cellId owner:nil options:nil].lastObject;
cell.flowLayout.itemSize = CGSizeMake(UserIconWidth, UserIconHeight);
cell.flowLayout.minimumLineSpacing = 7;
cell.flowLayout.scrollDirection = UICollectionViewScrollDirectionHorizontal;
cell.collectionView.dataSource = cell;
cell.collectionView.delegate = cell;
cell.collectionView.backgroundColor = UIColor.clearColor;
[cell.collectionView registerClass:[QXTagImageCell class] forCellWithReuseIdentifier:@"QXTagImageCell"];
cell.backgroundColor = [UIColor clearColor];
cell.contentView.backgroundColor = [UIColor clearColor];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
}
return cell;
}
- (void)awakeFromNib {
[super awakeFromNib];
// Initialization code
}
-(void)setModel:(QXFamilyMemberModel *)model{
_model = model;
[self.headerView setHeadIcon:model.nickname dress:model.dress];
[self.headerView.nobilityImageView sd_setImageWithURL:[NSURL URLWithString:model.nobility_image]];
self.dayLabel.text = [NSString stringWithFormat:@"剩余租期:%@",model.end_day];
self.timesLabel.text = [NSString stringWithFormat:@"免费续约次数:%@",model.free_renewal];
self.nameLabel.text = model.nickname;
[self.todayPriceBtn setTitle:model.today_earnings forState:(UIControlStateNormal)];
[self.yestodayPriceBtn setTitle:model.yesterday_earnings forState:(UIControlStateNormal)];
[self.priceBtn setTitle:model.market_value forState:(UIControlStateNormal)];
self.onlineLabel.text = model.is_online==1?@"当前在线":@"当前离线";
self.continueBtn.hidden = model.is_show_sign.intValue==1?NO:YES;
}
- (IBAction)continueAction:(id)sender {
QXCustomAlertView *al = [[QXCustomAlertView alloc] init];
al.title = @"续约提示";
al.message = @"尊敬的用户:  您的徒弟【夏沫】当前为首次签约的 免费续约期。续约后徒弟合约将延长7天您剩余的免费续约次数1次";
al.cancleTitle = @"取消";
al.commitTitle = @"确认续约";
al.isFromController = YES;
al.cancelBlock = ^{
[[QXGlobal shareGlobal] hideViewBlock:nil];
};
al.commitBlock = ^{
[[QXGlobal shareGlobal] hideViewBlock:nil];
};
[QXGlobal.shareGlobal showView:al popType:(PopViewTypeTopToCenter) tapDismiss:NO finishBlock:nil];
// [al showInView:self.viewController.view title:@"续约提示" message:@"尊敬的用户:  您的徒弟【夏沫】当前为首次签约的 免费续约期。续约后徒弟合约将延长7天您剩余的免费续约次数1次" cancleTitle:@"取消" commitTitle:@"确认续约"];
}
-(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{
if (self.model==nil) {
return 0;
}
return self.model.icon.count;
}
-(__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
QXTagImageCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"QXTagImageCell" forIndexPath:indexPath];
cell.imageUrl = self.model.icon[indexPath.row];
return cell;
}
- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
[super setSelected:selected animated:animated];
// Configure the view for the selected state
}
@end

View File

@@ -0,0 +1,267 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23504" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
<device id="retina6_12" orientation="portrait" appearance="light"/>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23506"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
<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"/>
<tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" rowHeight="178" id="KGk-i7-Jjw" customClass="QXFamilyMemberCell">
<rect key="frame" x="0.0" y="0.0" width="375" height="178"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="KGk-i7-Jjw" id="H2p-sc-9uM">
<rect key="frame" x="0.0" y="0.0" width="375" height="178"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="iH0-Pj-t8s">
<rect key="frame" x="16" y="6" width="343" height="166"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="family_top_member_bg" translatesAutoresizingMaskIntoConstraints="NO" id="Msn-nc-t9D">
<rect key="frame" x="0.0" y="0.0" width="343" height="166"/>
</imageView>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="uXg-p7-J2S" customClass="QXSeatHeaderView">
<rect key="frame" x="18" y="12" width="52" height="68"/>
<constraints>
<constraint firstAttribute="height" constant="68" id="bCB-eE-Zr3"/>
<constraint firstAttribute="width" constant="52" id="h5x-rL-px2"/>
</constraints>
</view>
<collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" dataMode="none" translatesAutoresizingMaskIntoConstraints="NO" id="Xpt-NC-KbR">
<rect key="frame" x="90" y="14" width="242" height="19"/>
<constraints>
<constraint firstAttribute="height" constant="19" id="mpP-Tm-mjr"/>
</constraints>
<collectionViewFlowLayout key="collectionViewLayout" scrollDirection="horizontal" minimumLineSpacing="10" minimumInteritemSpacing="10" id="ErA-Km-MvK">
<size key="itemSize" width="128" height="128"/>
<size key="headerReferenceSize" width="0.0" height="0.0"/>
<size key="footerReferenceSize" width="0.0" height="0.0"/>
<inset key="sectionInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/>
</collectionViewFlowLayout>
<connections>
<outlet property="dataSource" destination="-1" id="neF-wi-DOJ"/>
<outlet property="delegate" destination="-1" id="JgI-Be-tW3"/>
</connections>
</collectionView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="剩余租期5天" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="3c8-yw-ZcY">
<rect key="frame" x="90" y="43" width="80.666666666666686" height="14.333333333333336"/>
<fontDescription key="fontDescription" type="system" pointSize="12"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="张三张三张三" textAlignment="center" lineBreakMode="clip" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="AEg-Tu-ye6">
<rect key="frame" x="8" y="88" width="72" height="19.333333333333329"/>
<fontDescription key="fontDescription" type="boldSystem" pointSize="16"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="免费续约次数3次" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="D6h-bE-tlh">
<rect key="frame" x="90" y="65.333333333333329" width="104.66666666666669" height="14.333333333333329"/>
<fontDescription key="fontDescription" type="system" pointSize="12"/>
<nil key="textColor"/>
<nil key="highlightedColor"/>
</label>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="BVQ-z4-fHs">
<rect key="frame" x="26" y="111.33333333333333" width="36" height="19.999999999999986"/>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
<state key="normal" title="10" image="mine_recharge_corn">
<color key="titleColor" red="1" green="0.15294117647058825" blue="0.15294117647058825" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</state>
</button>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="当前在线" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="cha-OZ-i3U">
<rect key="frame" x="20" y="136.33333333333334" width="48" height="15"/>
<fontDescription key="fontDescription" type="system" pointSize="12"/>
<color key="textColor" red="0.22745098039215686" green="0.73725490196078436" blue="0.42745098039215684" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="VGe-Cc-S6Q">
<rect key="frame" x="90" y="87.666666666666686" width="85" height="66.333333333333314"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="今日" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="fxt-Ok-e8L">
<rect key="frame" x="30.666666666666657" y="4" width="24" height="17"/>
<constraints>
<constraint firstAttribute="height" constant="17" id="xrg-jZ-zdc"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="12"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="收礼盈利" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="9wb-6a-aQt">
<rect key="frame" x="18.666666666666671" y="23" width="48" height="17"/>
<constraints>
<constraint firstAttribute="height" constant="17" id="AoH-Ct-GM9"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="12"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="dpa-gV-fxG">
<rect key="frame" x="2" y="41.999999999999986" width="81" height="22.333333333333329"/>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
<state key="normal" title="10" image="family_diamond">
<color key="titleColor" red="1" green="0.1529411765" blue="0.1529411765" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</state>
</button>
</subviews>
<color key="backgroundColor" red="0.85490196078431369" green="1" blue="0.88627450980392153" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstItem="fxt-Ok-e8L" firstAttribute="centerX" secondItem="VGe-Cc-S6Q" secondAttribute="centerX" id="2pr-cg-4QY"/>
<constraint firstAttribute="width" constant="85" id="FPA-42-3py"/>
<constraint firstItem="9wb-6a-aQt" firstAttribute="top" secondItem="fxt-Ok-e8L" secondAttribute="bottom" constant="2" id="RzV-mu-ufj"/>
<constraint firstAttribute="bottom" secondItem="dpa-gV-fxG" secondAttribute="bottom" constant="2" id="dtB-XL-hOC"/>
<constraint firstItem="fxt-Ok-e8L" firstAttribute="top" secondItem="VGe-Cc-S6Q" secondAttribute="top" constant="4" id="ef4-nR-Mji"/>
<constraint firstItem="9wb-6a-aQt" firstAttribute="centerX" secondItem="VGe-Cc-S6Q" secondAttribute="centerX" id="iSE-Sg-0b1"/>
<constraint firstItem="dpa-gV-fxG" firstAttribute="top" secondItem="9wb-6a-aQt" secondAttribute="bottom" constant="2" id="ruM-mP-Gsq"/>
<constraint firstItem="dpa-gV-fxG" firstAttribute="leading" secondItem="VGe-Cc-S6Q" secondAttribute="leading" constant="2" id="wGY-6r-6Bn"/>
<constraint firstAttribute="trailing" secondItem="dpa-gV-fxG" secondAttribute="trailing" constant="2" id="xBG-GO-NWJ"/>
</constraints>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
<integer key="value" value="4"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</view>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="oGH-dJ-lZy">
<rect key="frame" x="179" y="87.666666666666686" width="85" height="66.333333333333314"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="昨日" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="KF6-Jg-pqn">
<rect key="frame" x="30.666666666666657" y="4" width="24" height="17"/>
<constraints>
<constraint firstAttribute="height" constant="17" id="2Du-Vr-MGL"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="12"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="收礼盈利" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Rjt-H4-heD">
<rect key="frame" x="18.666666666666657" y="23" width="48" height="17"/>
<constraints>
<constraint firstAttribute="height" constant="17" id="nAr-LR-mvb"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="12"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="3Ml-mg-Cxw">
<rect key="frame" x="2" y="41.999999999999986" width="81" height="22.333333333333329"/>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
<state key="normal" title="10" image="family_diamond">
<color key="titleColor" red="1" green="0.1529411765" blue="0.1529411765" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</state>
</button>
</subviews>
<color key="backgroundColor" red="0.85490196080000003" green="1" blue="0.8862745098" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstAttribute="trailing" secondItem="3Ml-mg-Cxw" secondAttribute="trailing" constant="2" id="4Wk-yD-BbV"/>
<constraint firstItem="Rjt-H4-heD" firstAttribute="top" secondItem="KF6-Jg-pqn" secondAttribute="bottom" constant="2" id="F2T-k5-Kgv"/>
<constraint firstAttribute="bottom" secondItem="3Ml-mg-Cxw" secondAttribute="bottom" constant="2" id="LJz-rW-T02"/>
<constraint firstItem="Rjt-H4-heD" firstAttribute="centerX" secondItem="oGH-dJ-lZy" secondAttribute="centerX" id="O15-tt-LOO"/>
<constraint firstAttribute="width" constant="85" id="bmv-lS-3aZ"/>
<constraint firstItem="3Ml-mg-Cxw" firstAttribute="leading" secondItem="oGH-dJ-lZy" secondAttribute="leading" constant="2" id="g7c-ng-N2i"/>
<constraint firstItem="3Ml-mg-Cxw" firstAttribute="top" secondItem="Rjt-H4-heD" secondAttribute="bottom" constant="2" id="jfG-L6-goi"/>
<constraint firstItem="KF6-Jg-pqn" firstAttribute="top" secondItem="oGH-dJ-lZy" secondAttribute="top" constant="4" id="udE-f7-Bn7"/>
<constraint firstItem="KF6-Jg-pqn" firstAttribute="centerX" secondItem="oGH-dJ-lZy" secondAttribute="centerX" id="xZZ-80-b2m"/>
</constraints>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
<integer key="value" value="4"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</view>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="v1E-D6-JeF">
<rect key="frame" x="278" y="126" width="60" height="28"/>
<color key="backgroundColor" red="0.22745098039215686" green="0.73725490196078436" blue="0.42745098039215684" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstAttribute="height" constant="28" id="C6z-41-oB8"/>
<constraint firstAttribute="width" constant="60" id="Qmm-ha-usv"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="13"/>
<inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
<state key="normal" title="续租"/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
<integer key="value" value="14"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
<connections>
<action selector="continueAction:" destination="KGk-i7-Jjw" eventType="touchUpInside" id="0Dk-bG-uLt"/>
</connections>
</button>
</subviews>
<constraints>
<constraint firstItem="VGe-Cc-S6Q" firstAttribute="top" secondItem="D6h-bE-tlh" secondAttribute="bottom" constant="8" id="0xl-vd-Eab"/>
<constraint firstItem="Xpt-NC-KbR" firstAttribute="top" secondItem="iH0-Pj-t8s" secondAttribute="top" constant="14" id="0yY-Uq-uIw"/>
<constraint firstItem="uXg-p7-J2S" firstAttribute="top" secondItem="iH0-Pj-t8s" secondAttribute="top" constant="12" id="3Up-H8-deH"/>
<constraint firstItem="BVQ-z4-fHs" firstAttribute="top" secondItem="AEg-Tu-ye6" secondAttribute="bottom" constant="4" id="45o-bc-VTo"/>
<constraint firstItem="3c8-yw-ZcY" firstAttribute="leading" secondItem="Xpt-NC-KbR" secondAttribute="leading" id="7he-6a-LQn"/>
<constraint firstAttribute="bottom" secondItem="VGe-Cc-S6Q" secondAttribute="bottom" constant="12" id="87e-jS-o6v"/>
<constraint firstItem="D6h-bE-tlh" firstAttribute="top" secondItem="3c8-yw-ZcY" secondAttribute="bottom" constant="8" id="GX3-ge-Kid"/>
<constraint firstItem="AEg-Tu-ye6" firstAttribute="leading" secondItem="uXg-p7-J2S" secondAttribute="leading" constant="-10" id="Ggr-Ur-BTo"/>
<constraint firstAttribute="trailing" secondItem="Xpt-NC-KbR" secondAttribute="trailing" constant="11" id="IrF-U1-Mro"/>
<constraint firstItem="AEg-Tu-ye6" firstAttribute="top" secondItem="uXg-p7-J2S" secondAttribute="bottom" constant="8" id="J9W-JM-n7A"/>
<constraint firstItem="VGe-Cc-S6Q" firstAttribute="leading" secondItem="Xpt-NC-KbR" secondAttribute="leading" id="Jsy-KK-zrr"/>
<constraint firstItem="Msn-nc-t9D" firstAttribute="top" secondItem="iH0-Pj-t8s" secondAttribute="top" id="Rk3-kc-29m"/>
<constraint firstItem="D6h-bE-tlh" firstAttribute="leading" secondItem="Xpt-NC-KbR" secondAttribute="leading" id="WX5-EF-GjZ"/>
<constraint firstItem="v1E-D6-JeF" firstAttribute="bottom" secondItem="VGe-Cc-S6Q" secondAttribute="bottom" id="Xhb-uf-REu"/>
<constraint firstItem="oGH-dJ-lZy" firstAttribute="top" secondItem="VGe-Cc-S6Q" secondAttribute="top" id="bvy-kk-VyI"/>
<constraint firstItem="oGH-dJ-lZy" firstAttribute="bottom" secondItem="VGe-Cc-S6Q" secondAttribute="bottom" id="fer-eg-Q8u"/>
<constraint firstAttribute="trailing" secondItem="Msn-nc-t9D" secondAttribute="trailing" id="gQ1-bd-h8C"/>
<constraint firstItem="uXg-p7-J2S" firstAttribute="leading" secondItem="iH0-Pj-t8s" secondAttribute="leading" constant="18" id="jUx-NP-cQj"/>
<constraint firstItem="AEg-Tu-ye6" firstAttribute="trailing" secondItem="uXg-p7-J2S" secondAttribute="trailing" constant="10" id="nNH-Kq-QmX"/>
<constraint firstItem="Xpt-NC-KbR" firstAttribute="leading" secondItem="uXg-p7-J2S" secondAttribute="trailing" constant="20" id="p9M-CF-kU5"/>
<constraint firstItem="oGH-dJ-lZy" firstAttribute="leading" secondItem="VGe-Cc-S6Q" secondAttribute="trailing" constant="4" id="qvY-IN-Sh2"/>
<constraint firstItem="cha-OZ-i3U" firstAttribute="centerX" secondItem="uXg-p7-J2S" secondAttribute="centerX" id="r8z-sa-uZA"/>
<constraint firstItem="cha-OZ-i3U" firstAttribute="top" secondItem="BVQ-z4-fHs" secondAttribute="bottom" constant="5" id="ri0-KS-mht"/>
<constraint firstAttribute="trailing" secondItem="v1E-D6-JeF" secondAttribute="trailing" constant="5" id="t3Y-Ci-cqO"/>
<constraint firstAttribute="bottom" secondItem="Msn-nc-t9D" secondAttribute="bottom" id="vAB-on-UgX"/>
<constraint firstItem="3c8-yw-ZcY" firstAttribute="top" secondItem="Xpt-NC-KbR" secondAttribute="bottom" constant="10" id="vo1-0c-qqk"/>
<constraint firstItem="Msn-nc-t9D" firstAttribute="leading" secondItem="iH0-Pj-t8s" secondAttribute="leading" id="xki-e1-3Kn"/>
<constraint firstItem="BVQ-z4-fHs" firstAttribute="centerX" secondItem="uXg-p7-J2S" secondAttribute="centerX" id="zMn-Oa-xMf"/>
</constraints>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
<integer key="value" value="12"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</view>
</subviews>
<constraints>
<constraint firstItem="iH0-Pj-t8s" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" constant="6" id="Qrb-JX-7dX"/>
<constraint firstItem="iH0-Pj-t8s" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="16" id="VM1-pJ-dqP"/>
<constraint firstAttribute="trailing" secondItem="iH0-Pj-t8s" secondAttribute="trailing" constant="16" id="ng7-pJ-1Mx"/>
<constraint firstAttribute="bottom" secondItem="iH0-Pj-t8s" secondAttribute="bottom" constant="6" id="qzE-xj-NKp"/>
</constraints>
</tableViewCellContentView>
<viewLayoutGuide key="safeArea" id="aW0-zy-SZf"/>
<connections>
<outlet property="collectionView" destination="Xpt-NC-KbR" id="pmE-BS-kUl"/>
<outlet property="continueBtn" destination="v1E-D6-JeF" id="Srn-jh-maM"/>
<outlet property="dayLabel" destination="3c8-yw-ZcY" id="MbY-ho-AdO"/>
<outlet property="flowLayout" destination="ErA-Km-MvK" id="hkS-jB-9fF"/>
<outlet property="headerView" destination="uXg-p7-J2S" id="P7X-to-hlT"/>
<outlet property="nameLabel" destination="AEg-Tu-ye6" id="mys-qk-wdQ"/>
<outlet property="onlineLabel" destination="cha-OZ-i3U" id="CqR-eC-65V"/>
<outlet property="priceBtn" destination="BVQ-z4-fHs" id="CwE-cf-JVh"/>
<outlet property="timesLabel" destination="D6h-bE-tlh" id="Npo-LQ-mYv"/>
<outlet property="todayPriceBtn" destination="dpa-gV-fxG" id="tLX-md-1HV"/>
<outlet property="yestodayPriceBtn" destination="3Ml-mg-Cxw" id="kIm-ei-YWd"/>
</connections>
<point key="canvasLocation" x="257.25190839694653" y="66.901408450704224"/>
</tableViewCell>
</objects>
<resources>
<image name="family_diamond" width="14" height="14"/>
<image name="family_top_member_bg" width="343" height="164"/>
<image name="mine_recharge_corn" width="20" height="20"/>
</resources>
</document>

View File

@@ -0,0 +1,22 @@
//
// QXFamilyPriceRecordCell.h
// QXLive
//
// Created by 启星 on 2025/11/26.
//
#import <UIKit/UIKit.h>
#import "QXFamilyModel.h"
NS_ASSUME_NONNULL_BEGIN
@interface QXFamilyPriceRecordCell : UITableViewCell
@property (weak, nonatomic) IBOutlet UILabel *nameLabel;
@property (weak, nonatomic) IBOutlet UILabel *giftLabel;
@property (weak, nonatomic) IBOutlet UILabel *giftPriceLabel;
@property (weak, nonatomic) IBOutlet UILabel *timeLabel;
@property (weak, nonatomic) IBOutlet UILabel *moneyLabel;
@property (strong, nonatomic) QXFamilyEarningModel *model;
+(instancetype)cellWithTableView:(UITableView *)tableView;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,45 @@
//
// QXFamilyPriceRecordCell.m
// QXLive
//
// Created by on 2025/11/26.
//
#import "QXFamilyPriceRecordCell.h"
@implementation QXFamilyPriceRecordCell
+(instancetype)cellWithTableView:(UITableView *)tableView{
static NSString *cellId = @"QXFamilyPriceRecordCell";
QXFamilyPriceRecordCell *cell = [tableView dequeueReusableCellWithIdentifier:cellId];
if (!cell) {
cell = [[NSBundle mainBundle] loadNibNamed:cellId owner:nil options:nil].lastObject;
cell.backgroundColor = [UIColor clearColor];
cell.contentView.backgroundColor = [UIColor clearColor];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
}
return cell;
}
-(void)setModel:(QXFamilyEarningModel *)model{
_model = model;
self.nameLabel.text = model.nickname;
self.giftLabel.text = [NSString stringWithFormat:@"礼物名称:%@",model.gift_name];
self.giftPriceLabel.text = [NSString stringWithFormat:@"礼物金额:%@",model.gift_price];
NSDate *date = [NSDate dateWithTimeIntervalSince1970:model.createtime.longLongValue]; //,1000 , 1000
NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";
NSString*time = [formatter stringFromDate:date];
self.timeLabel.text = time;
self.moneyLabel.text = [NSString stringWithFormat:@"+%@",model.earnings];
}
- (void)awakeFromNib {
[super awakeFromNib];
// Initialization code
}
- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
[super setSelected:selected animated:animated];
// Configure the view for the selected state
}
@end

View File

@@ -0,0 +1,109 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23504" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
<device id="retina6_12" orientation="portrait" appearance="light"/>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23506"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
<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"/>
<tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" rowHeight="115" id="KGk-i7-Jjw" customClass="QXFamilyPriceRecordCell">
<rect key="frame" x="0.0" y="0.0" width="437" height="115"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="KGk-i7-Jjw" id="H2p-sc-9uM">
<rect key="frame" x="0.0" y="0.0" width="437" height="115"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="夏末" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="qhY-xK-j4V">
<rect key="frame" x="16" y="12" width="28" height="20"/>
<constraints>
<constraint firstAttribute="height" constant="20" id="yEo-s3-dl7"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="礼物名称:娃哈哈" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="HJ8-fz-wWx">
<rect key="frame" x="16" y="36" width="87" height="17"/>
<constraints>
<constraint firstAttribute="height" constant="17" id="9Tr-bc-dxx"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="12"/>
<color key="textColor" red="0.65098039215686276" green="0.65098039215686276" blue="0.65098039215686276" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="礼物金额:2.00" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="1Ye-0Q-Ars">
<rect key="frame" x="16" y="57" width="76.666666666666671" height="17"/>
<constraints>
<constraint firstAttribute="height" constant="17" id="D9K-U1-SJT"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="12"/>
<color key="textColor" red="0.65098039220000004" green="0.65098039220000004" blue="0.65098039220000004" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="时间:2024.12.14 11:21:45" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="K90-F2-gDK">
<rect key="frame" x="16" y="78" width="138.66666666666666" height="17"/>
<constraints>
<constraint firstAttribute="height" constant="17" id="NXB-k6-bcp"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="12"/>
<color key="textColor" red="0.65098039220000004" green="0.65098039220000004" blue="0.65098039220000004" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="flF-ys-FmL">
<rect key="frame" x="0.0" y="114" width="437" height="1"/>
<color key="backgroundColor" red="0.94509803921568625" green="0.94901960784313721" blue="0.95294117647058818" alpha="1" colorSpace="calibratedRGB"/>
<constraints>
<constraint firstAttribute="height" constant="1" id="Je4-fq-8DP"/>
</constraints>
</view>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="family_diamond" translatesAutoresizingMaskIntoConstraints="NO" id="Epl-Tk-yAO">
<rect key="frame" x="405" y="16" width="16" height="16"/>
<constraints>
<constraint firstAttribute="width" constant="16" id="8jn-qK-laY"/>
<constraint firstAttribute="height" constant="16" id="yT0-QV-hOt"/>
</constraints>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="+10" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ykc-S1-6gP">
<rect key="frame" x="375" y="14.333333333333334" width="29" height="19.333333333333329"/>
<fontDescription key="fontDescription" type="boldSystem" pointSize="16"/>
<color key="textColor" red="1" green="0.15294117647058825" blue="0.15294117647058825" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<constraints>
<constraint firstAttribute="trailing" secondItem="flF-ys-FmL" secondAttribute="trailing" id="1jc-En-ojk"/>
<constraint firstItem="Epl-Tk-yAO" firstAttribute="leading" secondItem="ykc-S1-6gP" secondAttribute="trailing" constant="1" id="41O-42-s4J"/>
<constraint firstItem="qhY-xK-j4V" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" constant="12" id="4ZR-PO-QSD"/>
<constraint firstItem="Epl-Tk-yAO" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" constant="16" id="51M-Qu-JSa"/>
<constraint firstItem="ykc-S1-6gP" firstAttribute="centerY" secondItem="Epl-Tk-yAO" secondAttribute="centerY" id="CuU-6Q-HHr"/>
<constraint firstItem="flF-ys-FmL" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" id="RIQ-sW-mWT"/>
<constraint firstAttribute="trailing" secondItem="Epl-Tk-yAO" secondAttribute="trailing" constant="16" id="RW9-oL-s1o"/>
<constraint firstItem="K90-F2-gDK" firstAttribute="top" secondItem="1Ye-0Q-Ars" secondAttribute="bottom" constant="4" id="Z6j-2T-Z0T"/>
<constraint firstItem="1Ye-0Q-Ars" firstAttribute="leading" secondItem="qhY-xK-j4V" secondAttribute="leading" id="ZCB-0t-61d"/>
<constraint firstItem="1Ye-0Q-Ars" firstAttribute="top" secondItem="HJ8-fz-wWx" secondAttribute="bottom" constant="4" id="bzk-lp-22S"/>
<constraint firstItem="qhY-xK-j4V" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="16" id="eQd-xw-aT2"/>
<constraint firstItem="HJ8-fz-wWx" firstAttribute="top" secondItem="qhY-xK-j4V" secondAttribute="bottom" constant="4" id="gJu-uP-c6T"/>
<constraint firstAttribute="bottom" secondItem="flF-ys-FmL" secondAttribute="bottom" id="jeJ-ag-rT0"/>
<constraint firstItem="HJ8-fz-wWx" firstAttribute="leading" secondItem="qhY-xK-j4V" secondAttribute="leading" id="tTq-x2-K3e"/>
<constraint firstItem="K90-F2-gDK" firstAttribute="leading" secondItem="qhY-xK-j4V" secondAttribute="leading" id="z1r-cR-lZo"/>
</constraints>
</tableViewCellContentView>
<viewLayoutGuide key="safeArea" id="aW0-zy-SZf"/>
<connections>
<outlet property="giftLabel" destination="HJ8-fz-wWx" id="pkM-L4-ZWQ"/>
<outlet property="giftPriceLabel" destination="1Ye-0Q-Ars" id="0fu-nF-wy3"/>
<outlet property="moneyLabel" destination="ykc-S1-6gP" id="1sU-VR-dQw"/>
<outlet property="nameLabel" destination="qhY-xK-j4V" id="cTI-xo-aUG"/>
<outlet property="timeLabel" destination="K90-F2-gDK" id="57k-vs-LDq"/>
</connections>
<point key="canvasLocation" x="228.24427480916029" y="44.718309859154935"/>
</tableViewCell>
</objects>
<resources>
<image name="family_diamond" width="14" height="14"/>
</resources>
</document>

View File

@@ -0,0 +1,22 @@
//
// QXFamilyTopCell.h
// QXLive
//
// Created by 启星 on 2025/11/26.
//
#import <UIKit/UIKit.h>
#import "QXFamilyModel.h"
NS_ASSUME_NONNULL_BEGIN
@interface QXFamilyTopCell : UITableViewCell
@property (weak, nonatomic) IBOutlet QXSeatHeaderView *headerView;
@property (weak, nonatomic) IBOutlet UILabel *nameLabel;
@property (weak, nonatomic) IBOutlet UILabel *IdLabel;
@property (weak, nonatomic) IBOutlet UILabel *priceLabel;
@property (weak, nonatomic) IBOutlet UIButton *timesBtn;
@property (strong, nonatomic) QXFamilyModel *model;
+(instancetype)cellWithTableView:(UITableView *)tableView;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,55 @@
//
// QXFamilyTopCell.m
// QXLive
//
// Created by on 2025/11/26.
//
#import "QXFamilyTopCell.h"
#import "QXFamilyPriceRecordViewController.h"
@implementation QXFamilyTopCell
+(instancetype)cellWithTableView:(UITableView *)tableView{
static NSString *cellId = @"QXFamilyTopCell";
QXFamilyTopCell *cell = [tableView dequeueReusableCellWithIdentifier:cellId];
if (!cell) {
cell = [[NSBundle mainBundle] loadNibNamed:cellId owner:nil options:nil].lastObject;
cell.backgroundColor = [UIColor clearColor];
cell.contentView.backgroundColor = [UIColor clearColor];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
}
return cell;
}
- (void)awakeFromNib {
[super awakeFromNib];
// Initialization code
}
- (IBAction)familyGroupAction:(id)sender {
if (self.model.group_members_lists.count == 0) {
showToast(@"家族群至少需要签约一位徒弟");
}else{
[[QXGlobal shareGlobal] chatWithGroupId:self.model.group_id cover:self.model.group_owner_info.avatar name:[NSString stringWithFormat:@"%@的家族",self.model.group_owner_info.nickname] navagationController:self.viewController.navigationController];
}
}
-(void)setModel:(QXFamilyModel *)model{
_model = model;
[self.headerView setHeadIcon:model.group_owner_info.avatar dress:model.group_owner_info.dress];
[self.headerView.nobilityImageView sd_setImageWithURL:[NSURL URLWithString:model.group_owner_info.nobility_image]];
self.nameLabel.text = model.group_owner_info.nickname;
self.IdLabel.text = [NSString stringWithFormat:@"ID:%@",model.group_owner_info.user_code];
self.priceLabel.text = model.group_earnings;
[self.timesBtn setTitle:[NSString stringWithFormat:@"签约次数:%@",model.group_members_num] forState:(UIControlStateNormal)];
}
- (IBAction)moreAction:(id)sender {
QXFamilyPriceRecordViewController *vc = [[QXFamilyPriceRecordViewController alloc] init];
[self.viewController.navigationController pushViewController:vc animated:YES];
}
- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
[super setSelected:selected animated:animated];
// Configure the view for the selected state
}
@end

View File

@@ -0,0 +1,194 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23504" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
<device id="retina6_12" orientation="portrait" appearance="light"/>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23506"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
<capability name="System colors in document resources" minToolsVersion="11.0"/>
<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"/>
<tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" rowHeight="151" id="KGk-i7-Jjw" customClass="QXFamilyTopCell">
<rect key="frame" x="0.0" y="0.0" width="450" height="166"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="KGk-i7-Jjw" id="H2p-sc-9uM">
<rect key="frame" x="0.0" y="0.0" width="450" height="166"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="3BO-xe-hek">
<rect key="frame" x="16" y="6" width="418" height="154"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="family_top_card_bg" translatesAutoresizingMaskIntoConstraints="NO" id="GHu-EJ-Wbd">
<rect key="frame" x="0.0" y="0.0" width="418" height="154"/>
</imageView>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="e13-1K-ekR" customClass="QXSeatHeaderView">
<rect key="frame" x="12" y="12" width="52" height="68"/>
<constraints>
<constraint firstAttribute="width" constant="52" id="ANo-cs-wER"/>
<constraint firstAttribute="height" constant="68" id="XBq-sk-iDv"/>
</constraints>
</view>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="张三" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="TkV-BL-yL5">
<rect key="frame" x="70" y="18" width="32" height="20"/>
<fontDescription key="fontDescription" type="boldSystem" pointSize="16"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="ID:000" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="z3B-k1-NTB">
<rect key="frame" x="70" y="48" width="41" height="16"/>
<fontDescription key="fontDescription" type="system" pointSize="13"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.65000000000000002" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="PyP-w3-ARC">
<rect key="frame" x="347" y="34" width="59" height="24"/>
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstAttribute="width" constant="59" id="YPA-f2-6hz"/>
<constraint firstAttribute="height" constant="24" id="us6-M5-pLx"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
<state key="normal" title="家族群">
<color key="titleColor" red="0.22745098039215686" green="0.73725490196078436" blue="0.42745098039215684" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</state>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
<integer key="value" value="12"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
<connections>
<action selector="familyGroupAction:" destination="KGk-i7-Jjw" eventType="touchUpInside" id="kgd-1Q-MnU"/>
</connections>
</button>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="family_top_money_bg" translatesAutoresizingMaskIntoConstraints="NO" id="7nK-sc-Xb1">
<rect key="frame" x="12" y="90" width="394" height="34"/>
<constraints>
<constraint firstAttribute="height" constant="34" id="8p3-Y6-R2b"/>
</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="e4c-SV-262">
<rect key="frame" x="20" y="97.333333333333329" width="71.666666666666671" height="19.333333333333329"/>
<fontDescription key="fontDescription" type="boldSystem" pointSize="16"/>
<color key="textColor" red="1" green="0.15294117647058825" blue="0.15294117647058825" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="10" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="3Oj-ZZ-dJY">
<rect key="frame" x="115.66666666666666" y="97" width="19" height="20"/>
<fontDescription key="fontDescription" type="boldSystem" pointSize="16"/>
<color key="textColor" red="1" green="0.1529411765" blue="0.1529411765" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="wallet_diamond" translatesAutoresizingMaskIntoConstraints="NO" id="cTA-sK-hax">
<rect key="frame" x="93.666666666666671" y="97" width="20" height="20"/>
<constraints>
<constraint firstAttribute="height" constant="20" id="DQX-KA-pkE"/>
<constraint firstAttribute="width" constant="20" id="NPS-q0-41H"/>
</constraints>
</imageView>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="p1I-Q6-afr">
<rect key="frame" x="12" y="118" width="95" height="24"/>
<color key="backgroundColor" red="0.73333333333333328" green="0.63529411764705879" blue="0.99607843137254903" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstAttribute="width" constant="95" id="9QQ-oj-Ef7"/>
<constraint firstAttribute="height" constant="24" id="fqd-hY-yNf"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="13"/>
<inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
<state key="normal" title="签约次数2"/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
<integer key="value" value="12"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</button>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="0gn-8b-lI6">
<rect key="frame" x="303" y="90" width="95" height="34"/>
<constraints>
<constraint firstAttribute="width" constant="95" id="s59-iI-L71"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="13"/>
<inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
<state key="normal" title="查看更多">
<color key="titleColor" red="0.0" green="0.0" blue="0.0" alpha="0.48999999999999999" colorSpace="custom" customColorSpace="sRGB"/>
</state>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
<integer key="value" value="12"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
<connections>
<action selector="moreAction:" destination="KGk-i7-Jjw" eventType="touchUpInside" id="VfQ-Au-zQr"/>
</connections>
</button>
</subviews>
<color key="backgroundColor" systemColor="systemBackgroundColor"/>
<constraints>
<constraint firstAttribute="trailing" secondItem="GHu-EJ-Wbd" secondAttribute="trailing" id="0jE-EF-hX0"/>
<constraint firstItem="TkV-BL-yL5" firstAttribute="top" secondItem="e13-1K-ekR" secondAttribute="top" constant="6" id="75K-gp-Cgc"/>
<constraint firstAttribute="bottom" secondItem="p1I-Q6-afr" secondAttribute="bottom" constant="12" id="8lM-bl-kBQ"/>
<constraint firstAttribute="trailing" secondItem="7nK-sc-Xb1" secondAttribute="trailing" constant="12" id="9sa-qm-BwO"/>
<constraint firstAttribute="trailing" secondItem="PyP-w3-ARC" secondAttribute="trailing" constant="12" id="ArF-ga-7Pc"/>
<constraint firstItem="e4c-SV-262" firstAttribute="centerY" secondItem="7nK-sc-Xb1" secondAttribute="centerY" id="Fet-Ld-aPl"/>
<constraint firstItem="0gn-8b-lI6" firstAttribute="top" secondItem="7nK-sc-Xb1" secondAttribute="top" id="JhD-54-GuB"/>
<constraint firstItem="e13-1K-ekR" firstAttribute="top" secondItem="3BO-xe-hek" secondAttribute="top" constant="12" id="K3Q-PA-aBG"/>
<constraint firstItem="GHu-EJ-Wbd" firstAttribute="top" secondItem="3BO-xe-hek" secondAttribute="top" id="NnM-R4-vuZ"/>
<constraint firstItem="PyP-w3-ARC" firstAttribute="centerY" secondItem="e13-1K-ekR" secondAttribute="centerY" id="PaC-cQ-ZGg"/>
<constraint firstItem="e13-1K-ekR" firstAttribute="leading" secondItem="3BO-xe-hek" secondAttribute="leading" constant="12" id="SL7-K7-CzP"/>
<constraint firstItem="7nK-sc-Xb1" firstAttribute="top" secondItem="e13-1K-ekR" secondAttribute="bottom" constant="10" id="The-Fm-7EX"/>
<constraint firstItem="z3B-k1-NTB" firstAttribute="leading" secondItem="TkV-BL-yL5" secondAttribute="leading" id="TmM-oO-jaK"/>
<constraint firstAttribute="trailing" secondItem="0gn-8b-lI6" secondAttribute="trailing" constant="20" id="U3O-kJ-MpN"/>
<constraint firstItem="TkV-BL-yL5" firstAttribute="leading" secondItem="e13-1K-ekR" secondAttribute="trailing" constant="6" id="VM4-zX-a10"/>
<constraint firstItem="cTA-sK-hax" firstAttribute="leading" secondItem="e4c-SV-262" secondAttribute="trailing" constant="2" id="ZQc-Hs-BIy"/>
<constraint firstItem="cTA-sK-hax" firstAttribute="centerY" secondItem="7nK-sc-Xb1" secondAttribute="centerY" id="cPp-hD-TGb"/>
<constraint firstItem="7nK-sc-Xb1" firstAttribute="leading" secondItem="3BO-xe-hek" secondAttribute="leading" constant="12" id="cbo-tO-HwG"/>
<constraint firstItem="3Oj-ZZ-dJY" firstAttribute="centerY" secondItem="7nK-sc-Xb1" secondAttribute="centerY" id="iaD-sN-p3Y"/>
<constraint firstItem="e4c-SV-262" firstAttribute="leading" secondItem="7nK-sc-Xb1" secondAttribute="leading" constant="8" id="j67-lX-4D3"/>
<constraint firstItem="p1I-Q6-afr" firstAttribute="leading" secondItem="e13-1K-ekR" secondAttribute="leading" id="jgY-0h-fIK"/>
<constraint firstItem="3Oj-ZZ-dJY" firstAttribute="leading" secondItem="cTA-sK-hax" secondAttribute="trailing" constant="2" id="lNr-Lh-ws1"/>
<constraint firstItem="0gn-8b-lI6" firstAttribute="bottom" secondItem="7nK-sc-Xb1" secondAttribute="bottom" id="sfq-af-C6B"/>
<constraint firstAttribute="bottom" secondItem="GHu-EJ-Wbd" secondAttribute="bottom" id="srm-KP-Woe"/>
<constraint firstItem="GHu-EJ-Wbd" firstAttribute="leading" secondItem="3BO-xe-hek" secondAttribute="leading" id="tYV-M9-uBA"/>
<constraint firstItem="z3B-k1-NTB" firstAttribute="top" secondItem="TkV-BL-yL5" secondAttribute="bottom" constant="10" id="w2f-jH-NvI"/>
</constraints>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
<integer key="value" value="12"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</view>
</subviews>
<constraints>
<constraint firstItem="3BO-xe-hek" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="16" id="4fs-bY-gK5"/>
<constraint firstAttribute="trailing" secondItem="3BO-xe-hek" secondAttribute="trailing" constant="16" id="iQP-Gx-B1k"/>
<constraint firstItem="3BO-xe-hek" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" constant="6" id="o1N-M7-JGZ"/>
<constraint firstAttribute="bottom" secondItem="3BO-xe-hek" secondAttribute="bottom" constant="6" id="whe-CV-i6e"/>
</constraints>
</tableViewCellContentView>
<viewLayoutGuide key="safeArea" id="aW0-zy-SZf"/>
<connections>
<outlet property="IdLabel" destination="z3B-k1-NTB" id="boA-R9-9hQ"/>
<outlet property="headerView" destination="e13-1K-ekR" id="Oho-Pf-Go7"/>
<outlet property="nameLabel" destination="TkV-BL-yL5" id="4va-BZ-DuQ"/>
<outlet property="priceLabel" destination="3Oj-ZZ-dJY" id="7EC-Hv-Xv0"/>
<outlet property="timesBtn" destination="p1I-Q6-afr" id="N9W-RK-ulb"/>
</connections>
<point key="canvasLocation" x="238.1679389312977" y="57.04225352112676"/>
</tableViewCell>
</objects>
<resources>
<image name="family_top_card_bg" width="343" height="154"/>
<image name="family_top_money_bg" width="319" height="34"/>
<image name="wallet_diamond" width="28" height="28"/>
<systemColor name="systemBackgroundColor">
<color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
</systemColor>
</resources>
</document>

View File

@@ -21,7 +21,12 @@
-(void)setModel:(QXDayTaskListModel *)model{
_model = model;
self.titleLabel.text = model.task_name;
NSString*subTitle = [NSString stringWithFormat:@"金币+%@",model.gold_reward];
NSString*subTitle = @"";
if (model.reward_type.intValue == 1) {
subTitle = [NSString stringWithFormat:@"金币+%@",model.gold_reward];
}else{
subTitle = [NSString stringWithFormat:@"钻石+%@",model.gold_reward];
}
NSMutableAttributedString *attr = [[NSMutableAttributedString alloc] initWithString:subTitle];
[attr yy_setColor:RGB16(0xFF8827) range:[subTitle rangeOfString:[NSString stringWithFormat:@"+%@",model.gold_reward]]];
self.subTitleLabel.attributedText = attr;