This commit is contained in:
启星
2025-08-08 10:49:36 +08:00
parent 6400cf78bb
commit b5ce3d580a
8780 changed files with 978183 additions and 0 deletions

View File

@@ -0,0 +1,42 @@
//
// QXMyCpRoomListCell.h
// QXLive
//
// Created by 启星 on 2025/7/1.
//
#import <UIKit/UIKit.h>
#import "QXRoomListModel.h"
NS_ASSUME_NONNULL_BEGIN
@interface QXMyCpRoomListCell : UICollectionViewCell
@property (weak, nonatomic) IBOutlet UIImageView *bgImageView;
/// 头像
@property (weak, nonatomic) IBOutlet UIImageView *headerImageView;
/// 房间类型
@property (weak, nonatomic) IBOutlet UIImageView *typeImageView;
/// 昵称
@property (weak, nonatomic) IBOutlet UILabel *nickNameLabel;
/// ID
@property (weak, nonatomic) IBOutlet UILabel *IDLabel;
/// 关注数量
@property (weak, nonatomic) IBOutlet UILabel *timeLabel;
/// 收益金额
@property (weak, nonatomic) IBOutlet UILabel *moneyLabel;
@property (weak, nonatomic) IBOutlet UIButton *roomDetailBtn;
@property (weak, nonatomic) IBOutlet UIButton *roomRankBtn;
@property (weak, nonatomic) IBOutlet UIButton *rankValueBtn;
@property (weak, nonatomic) IBOutlet UIImageView *leftHeaderImageView;
@property (weak, nonatomic) IBOutlet UIImageView *rightHeaderImageView;
@property (weak, nonatomic) IBOutlet UILabel *relationLabel;
@property (nonatomic,strong)QXRoomListCpModel *cpModel;
/// 0 我创建的 1 我主持的
@property (nonatomic,assign)NSInteger type;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,43 @@
//
// QXMyCpRoomListCell.m
// QXLive
//
// Created by on 2025/7/1.
//
#import "QXMyCpRoomListCell.h"
#import "QXRoomDetailViewController.h"
@implementation QXMyCpRoomListCell
- (void)awakeFromNib {
[super awakeFromNib];
// Initialization code
self.roomDetailBtn.backgroundColor = QXConfig.themeColor;
[self.roomDetailBtn setTitleColor:QXConfig.btnTextColor forState:(UIControlStateNormal)];
}
-(void)setType:(NSInteger)type{
_type = type;
}
-(void)setCpModel:(QXRoomListCpModel *)cpModel{
_cpModel = cpModel;
self.nickNameLabel.text = cpModel.room_name;
self.IDLabel.text = [NSString stringWithFormat:@"ID:%@",cpModel.room_number];
[self.leftHeaderImageView sd_setImageWithURL:[NSURL URLWithString:cpModel.user1_avatar]];
[self.rightHeaderImageView sd_setImageWithURL:[NSURL URLWithString:cpModel.user2_avatar]];
NSString *money = [NSString qx_showHotCountNum:cpModel.earnings.longLongValue];
self.moneyLabel.text = [NSString stringWithFormat:@"%@",money];
self.relationLabel.text = cpModel.relation;
NSTimeInterval timeInterval = [[NSDate date] timeIntervalSince1970];
long long milliseconds = (long long)(timeInterval);
long long time = cpModel.end_time.longLongValue - milliseconds;
self.timeLabel.text = [NSString getTimeWithSecond:time];
}
- (IBAction)detailAction:(id)sender {
QXRoomDetailViewController *vc = [[QXRoomDetailViewController alloc] init];
vc.type = self.type;
vc.room_id = self.cpModel.room_id;
[self.navigationController pushViewController:vc animated:YES];
}
@end

View File

@@ -0,0 +1,257 @@
<?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="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"/>
<collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" id="Fcp-h6-XEB" customClass="QXMyCpRoomListCell">
<rect key="frame" x="0.0" y="0.0" width="560" height="159"/>
<autoresizingMask key="autoresizingMask"/>
<view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
<rect key="frame" x="0.0" y="0.0" width="560" height="159"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="xgc-ZW-Nkl">
<rect key="frame" x="12" y="0.0" width="536" height="159"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="uIN-QL-vql">
<rect key="frame" x="0.0" y="0.0" width="536" height="159"/>
<color key="backgroundColor" red="0.95686274510000002" green="1" blue="0.96470588239999999" alpha="1" colorSpace="calibratedRGB"/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
<integer key="value" value="10"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</imageView>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="user_header_placehoulder" translatesAutoresizingMaskIntoConstraints="NO" id="vn3-DL-4Lf">
<rect key="frame" x="16" y="31" width="30" height="30"/>
<constraints>
<constraint firstAttribute="width" constant="30" id="21H-g4-43L"/>
<constraint firstAttribute="height" constant="30" id="ShY-Pz-SYd"/>
</constraints>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
<integer key="value" value="15"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</imageView>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="user_header_placehoulder" translatesAutoresizingMaskIntoConstraints="NO" id="66B-mF-aS2">
<rect key="frame" x="47" y="31" width="30" height="30"/>
<constraints>
<constraint firstAttribute="width" constant="30" id="WES-A1-9yH"/>
<constraint firstAttribute="height" constant="30" id="zPg-pT-808"/>
</constraints>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
<integer key="value" value="15"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</imageView>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="my_cproom_head_bg" translatesAutoresizingMaskIntoConstraints="NO" id="dUG-ji-nPc">
<rect key="frame" x="14" y="21" width="65" height="65"/>
<constraints>
<constraint firstAttribute="width" constant="65" id="gAh-FV-YRh"/>
<constraint firstAttribute="height" constant="65" id="gcV-gk-RVv"/>
</constraints>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
<integer key="value" value="6"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</imageView>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="my_room_cp" translatesAutoresizingMaskIntoConstraints="NO" id="vk0-vy-p5Y">
<rect key="frame" x="87" y="21" width="38" height="17"/>
<constraints>
<constraint firstAttribute="height" constant="17" id="6SK-e5-iey"/>
<constraint firstAttribute="width" constant="38" id="MpK-97-q4z"/>
</constraints>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
<integer key="value" value="6"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="用户昵称" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="UHJ-6Y-z18">
<rect key="frame" x="133" y="20.666666666666668" width="59.666666666666657" height="18.000000000000004"/>
<fontDescription key="fontDescription" type="system" pointSize="15"/>
<color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="ID:123456789" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="jTr-3w-TZs">
<rect key="frame" x="87" y="44" width="86.666666666666686" height="15.666666666666664"/>
<fontDescription key="fontDescription" type="system" pointSize="13"/>
<color key="textColor" red="0.40000000000000002" green="0.40000000000000002" blue="0.40000000000000002" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="123W" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Ja1-Ki-jt0">
<rect key="frame" x="480.33333333333331" y="20" width="43.666666666666686" height="19.333333333333329"/>
<fontDescription key="fontDescription" type="boldSystem" pointSize="16"/>
<color key="textColor" red="1" green="0.54117647059999996" blue="0.80000000000000004" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="今日收益" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="rX1-aN-rOV">
<rect key="frame" x="472.33333333333331" y="45.666666666666664" width="51.666666666666686" height="16"/>
<fontDescription key="fontDescription" type="system" pointSize="13"/>
<color key="textColor" white="0.5" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
<nil key="highlightedColor"/>
</label>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="25g-ef-U5f">
<rect key="frame" x="12" y="99" width="512" height="0.6666666666666714"/>
<color key="backgroundColor" red="0.8862745098" green="0.8862745098" blue="0.8862745098" alpha="1" colorSpace="calibratedRGB"/>
<constraints>
<constraint firstAttribute="height" constant="0.5" id="GHR-jX-lZX"/>
</constraints>
</view>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="D0C-vN-9bM">
<rect key="frame" x="12" y="109.66666666666667" width="82" height="30.000000000000014"/>
<constraints>
<constraint firstAttribute="width" constant="82" id="1ma-Zs-rwu"/>
<constraint firstAttribute="height" constant="30" id="LeF-xp-5gw"/>
</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="房间明细"/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
<integer key="value" value="15"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
<connections>
<action selector="detailAction:" destination="Fcp-h6-XEB" eventType="touchUpInside" id="lrW-Uc-C5k"/>
</connections>
</button>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="剩余33小时" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="gpV-0C-EdQ">
<rect key="frame" x="451.66666666666669" y="116" width="76.333333333333314" height="17"/>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="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="drY-i4-4zq">
<rect key="frame" x="381" y="116" width="62.666666666666686" height="17"/>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<color key="textColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="aUe-ZW-OZm">
<rect key="frame" x="87" y="68" width="37" height="18"/>
<constraints>
<constraint firstAttribute="height" constant="18" id="GZe-MB-Zgr"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="15"/>
<inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
<state key="normal" title=" 45" image="my_cproom_value">
<color key="titleColor" red="0.050980392159999999" green="1" blue="0.72549019609999998" alpha="1" colorSpace="calibratedRGB"/>
</state>
</button>
<button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="BH8-hx-cKt">
<rect key="frame" x="142" y="68" width="37" height="18"/>
<constraints>
<constraint firstAttribute="height" constant="18" id="nwC-I1-BPs"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="15"/>
<inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
<state key="normal" title=" 45" image="my_cproom_rank">
<color key="titleColor" red="0.050980392159999999" green="1" blue="0.72549019609999998" alpha="1" colorSpace="calibratedRGB"/>
</state>
</button>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="兄弟闺蜜" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="un0-sV-Wtm">
<rect key="frame" x="14" y="67" width="65" height="15"/>
<constraints>
<constraint firstAttribute="height" constant="15" id="Ouk-GX-bra"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="11"/>
<nil key="textColor"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<constraints>
<constraint firstItem="uIN-QL-vql" firstAttribute="top" secondItem="xgc-ZW-Nkl" secondAttribute="top" id="1Zu-vq-MsP"/>
<constraint firstItem="UHJ-6Y-z18" firstAttribute="centerY" secondItem="vk0-vy-p5Y" secondAttribute="centerY" id="4qU-nr-5hs"/>
<constraint firstItem="un0-sV-Wtm" firstAttribute="leading" secondItem="dUG-ji-nPc" secondAttribute="leading" id="6M8-Ny-Q4H"/>
<constraint firstItem="jTr-3w-TZs" firstAttribute="top" secondItem="vk0-vy-p5Y" secondAttribute="bottom" constant="6" id="7lJ-Bb-BXk"/>
<constraint firstItem="D0C-vN-9bM" firstAttribute="leading" secondItem="xgc-ZW-Nkl" secondAttribute="leading" constant="12" id="8u4-3M-H50"/>
<constraint firstItem="drY-i4-4zq" firstAttribute="centerY" secondItem="gpV-0C-EdQ" secondAttribute="centerY" id="BWI-wi-28b"/>
<constraint firstItem="vk0-vy-p5Y" firstAttribute="leading" secondItem="dUG-ji-nPc" secondAttribute="trailing" constant="8" id="DXM-ht-NUL"/>
<constraint firstItem="D0C-vN-9bM" firstAttribute="top" secondItem="25g-ef-U5f" secondAttribute="bottom" constant="10" id="EgG-Gc-Gb5"/>
<constraint firstItem="dUG-ji-nPc" firstAttribute="top" secondItem="xgc-ZW-Nkl" secondAttribute="top" constant="21" id="FwI-30-Utf"/>
<constraint firstItem="66B-mF-aS2" firstAttribute="trailing" secondItem="dUG-ji-nPc" secondAttribute="trailing" constant="-2" id="JbX-Aw-2X7"/>
<constraint firstItem="jTr-3w-TZs" firstAttribute="leading" secondItem="vk0-vy-p5Y" secondAttribute="leading" id="KqJ-FN-K3y"/>
<constraint firstItem="vn3-DL-4Lf" firstAttribute="leading" secondItem="dUG-ji-nPc" secondAttribute="leading" constant="2" id="Mxz-74-Bqd"/>
<constraint firstAttribute="bottom" secondItem="uIN-QL-vql" secondAttribute="bottom" id="NKo-es-zHl"/>
<constraint firstItem="aUe-ZW-OZm" firstAttribute="bottom" secondItem="dUG-ji-nPc" secondAttribute="bottom" id="NSk-6I-Pit"/>
<constraint firstItem="BH8-hx-cKt" firstAttribute="centerY" secondItem="aUe-ZW-OZm" secondAttribute="centerY" id="Ntx-dh-4lK"/>
<constraint firstItem="UHJ-6Y-z18" firstAttribute="leading" secondItem="vk0-vy-p5Y" secondAttribute="trailing" constant="8" symbolic="YES" id="PJe-XP-CsH"/>
<constraint firstItem="BH8-hx-cKt" firstAttribute="leading" secondItem="aUe-ZW-OZm" secondAttribute="trailing" constant="18" id="SZA-gs-3Sn"/>
<constraint firstItem="25g-ef-U5f" firstAttribute="top" secondItem="dUG-ji-nPc" secondAttribute="bottom" constant="13" id="TzI-h6-fnl"/>
<constraint firstItem="dUG-ji-nPc" firstAttribute="leading" secondItem="xgc-ZW-Nkl" secondAttribute="leading" constant="14" id="Vbm-f0-cDa"/>
<constraint firstItem="un0-sV-Wtm" firstAttribute="trailing" secondItem="dUG-ji-nPc" secondAttribute="trailing" id="Xhn-dF-yCq"/>
<constraint firstAttribute="trailing" secondItem="rX1-aN-rOV" secondAttribute="trailing" constant="12" id="YgD-PR-qMa"/>
<constraint firstItem="vk0-vy-p5Y" firstAttribute="top" secondItem="dUG-ji-nPc" secondAttribute="top" id="Yxw-Ub-8at"/>
<constraint firstItem="66B-mF-aS2" firstAttribute="top" secondItem="vn3-DL-4Lf" secondAttribute="top" id="Zz7-L1-EDM"/>
<constraint firstAttribute="trailing" secondItem="25g-ef-U5f" secondAttribute="trailing" constant="12" id="b0r-go-fNq"/>
<constraint firstAttribute="trailing" secondItem="gpV-0C-EdQ" secondAttribute="trailing" constant="8" id="cCH-1o-Nl4"/>
<constraint firstItem="25g-ef-U5f" firstAttribute="leading" secondItem="xgc-ZW-Nkl" secondAttribute="leading" constant="12" id="e3h-5r-Pty"/>
<constraint firstAttribute="trailing" secondItem="Ja1-Ki-jt0" secondAttribute="trailing" constant="12" id="fBD-Qy-eNc"/>
<constraint firstItem="uIN-QL-vql" firstAttribute="leading" secondItem="xgc-ZW-Nkl" secondAttribute="leading" id="h4G-we-Le9"/>
<constraint firstItem="gpV-0C-EdQ" firstAttribute="leading" secondItem="drY-i4-4zq" secondAttribute="trailing" constant="8" symbolic="YES" id="k7w-sa-IYR"/>
<constraint firstItem="vn3-DL-4Lf" firstAttribute="top" secondItem="dUG-ji-nPc" secondAttribute="top" constant="10" id="lBQ-3e-wvt"/>
<constraint firstItem="un0-sV-Wtm" firstAttribute="bottom" secondItem="dUG-ji-nPc" secondAttribute="bottom" constant="-4" id="lJ1-2X-QUj"/>
<constraint firstItem="gpV-0C-EdQ" firstAttribute="centerY" secondItem="D0C-vN-9bM" secondAttribute="centerY" id="mcM-Ka-Gsf"/>
<constraint firstItem="Ja1-Ki-jt0" firstAttribute="centerY" secondItem="vk0-vy-p5Y" secondAttribute="centerY" id="ndE-vn-lcG"/>
<constraint firstItem="aUe-ZW-OZm" firstAttribute="leading" secondItem="jTr-3w-TZs" secondAttribute="leading" id="nip-o0-3wC"/>
<constraint firstAttribute="trailing" secondItem="uIN-QL-vql" secondAttribute="trailing" id="shS-bV-qVs"/>
<constraint firstItem="rX1-aN-rOV" firstAttribute="centerY" secondItem="dUG-ji-nPc" secondAttribute="centerY" id="vbO-dk-9Cf"/>
</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>
</view>
<constraints>
<constraint firstItem="xgc-ZW-Nkl" firstAttribute="leading" secondItem="Fcp-h6-XEB" secondAttribute="leading" constant="12" id="20Y-bo-Mad"/>
<constraint firstAttribute="bottom" secondItem="xgc-ZW-Nkl" secondAttribute="bottom" id="Fss-nC-eNy"/>
<constraint firstAttribute="trailing" secondItem="xgc-ZW-Nkl" secondAttribute="trailing" constant="12" id="Z2t-Z7-ARM"/>
<constraint firstItem="xgc-ZW-Nkl" firstAttribute="top" secondItem="Fcp-h6-XEB" secondAttribute="top" id="sEP-95-LNU"/>
</constraints>
<size key="customSize" width="560" height="94"/>
<connections>
<outlet property="IDLabel" destination="jTr-3w-TZs" id="6hd-Uq-iMy"/>
<outlet property="bgImageView" destination="uIN-QL-vql" id="K3Z-cu-BY3"/>
<outlet property="headerImageView" destination="dUG-ji-nPc" id="gMV-Az-gWJ"/>
<outlet property="leftHeaderImageView" destination="vn3-DL-4Lf" id="2wH-ce-Oha"/>
<outlet property="moneyLabel" destination="Ja1-Ki-jt0" id="uI1-VT-c3N"/>
<outlet property="nickNameLabel" destination="UHJ-6Y-z18" id="TVZ-KB-F1c"/>
<outlet property="rankValueBtn" destination="BH8-hx-cKt" id="Rc2-7d-TjK"/>
<outlet property="relationLabel" destination="un0-sV-Wtm" id="uyc-PM-bBs"/>
<outlet property="rightHeaderImageView" destination="66B-mF-aS2" id="n0B-7q-iVL"/>
<outlet property="roomDetailBtn" destination="D0C-vN-9bM" id="TLY-yI-djH"/>
<outlet property="roomRankBtn" destination="aUe-ZW-OZm" id="VcG-Et-dsk"/>
<outlet property="timeLabel" destination="gpV-0C-EdQ" id="VNv-wg-PoH"/>
<outlet property="typeImageView" destination="vk0-vy-p5Y" id="uOH-pR-xtx"/>
</connections>
<point key="canvasLocation" x="528.24427480916029" y="35.563380281690144"/>
</collectionViewCell>
</objects>
<resources>
<image name="my_cproom_head_bg" width="65" height="65"/>
<image name="my_cproom_rank" width="14" height="14"/>
<image name="my_cproom_value" width="14" height="14"/>
<image name="my_room_cp" width="46" height="20"/>
<image name="user_header_placehoulder" width="40" height="40"/>
</resources>
</document>

View File

@@ -0,0 +1,45 @@
//
// QXMyRoomListCell.h
// IsLandVoice
//
// Created by 启星 on 2025/4/12.
//
#import <UIKit/UIKit.h>
#import "QXRoomListModel.h"
NS_ASSUME_NONNULL_BEGIN
@interface QXMyRoomListCell : UICollectionViewCell
/// 背景图
@property (weak, nonatomic) IBOutlet UIImageView *bgImageView;
/// 头像
@property (weak, nonatomic) IBOutlet UIImageView *headerImageView;
/// 房间类型
@property (weak, nonatomic) IBOutlet UIImageView *typeImageView;
/// 昵称
@property (weak, nonatomic) IBOutlet UILabel *nickNameLabel;
/// ID
@property (weak, nonatomic) IBOutlet UILabel *IDLabel;
/// 关注数量
@property (weak, nonatomic) IBOutlet UILabel *followLabel;
/// 在线人数
@property (weak, nonatomic) IBOutlet UILabel *onlineLabel;
/// 访问量
@property (weak, nonatomic) IBOutlet UILabel *comeCountLabel;
/// 今日收益
@property (weak, nonatomic) IBOutlet UILabel *todayLabel;
/// 收益金额
@property (weak, nonatomic) IBOutlet UILabel *moneyLabel;
@property (weak, nonatomic) IBOutlet UIButton *roomDetailBtn;
@property (weak, nonatomic) IBOutlet UIButton *roomSubsidyBtn;
@property (nonatomic,assign)NSInteger bgImageCount;
@property (weak, nonatomic) IBOutlet UIImageView *roomWaitImageView;
@property (nonatomic,strong)QXRoomListModel *model;
/// 0 我创建的 1 我主持的
@property (nonatomic,assign)NSInteger type;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,117 @@
//
// QXMyRoomListCell.m
// IsLandVoice
//
// Created by on 2025/4/12.
//
#import "QXMyRoomListCell.h"
#import "QXRoomDetailViewController.h"
#import "QXRoomSubsidyViewController.h"
@interface QXMyRoomListCell()
@property (nonatomic,strong)NSArray *bgImageNameArray;
@end
@implementation QXMyRoomListCell
- (void)awakeFromNib {
[super awakeFromNib];
// Initialization code
self.roomDetailBtn.backgroundColor = QXConfig.themeColor;
[self.roomDetailBtn setTitleColor:QXConfig.btnTextColor forState:(UIControlStateNormal)];
[self.roomSubsidyBtn setTitleColor:UIColor.whiteColor forState:(UIControlStateNormal)];
self.roomSubsidyBtn.backgroundColor = RGB16(0x333333);
}
-(void)setBgImageCount:(NSInteger)bgImageCount{
_bgImageCount = bgImageCount;
self.bgImageView.image = [UIImage imageNamed:self.bgImageNameArray[bgImageCount]];
}
-(void)setType:(NSInteger)type{
_type = type;
if (type == 0) {
self.roomSubsidyBtn.hidden = NO;
self.roomDetailBtn.hidden = NO;
}else{
self.roomSubsidyBtn.hidden = YES;
self.roomDetailBtn.hidden = NO;
}
}
//-(void)setModel:(SRLiveRoomModel *)model{
// _model = model;
// [self.headerImageView sd_setImageWithURL:[NSURL URLWithString:model.cover_picture] placeholderImage:[UIImage imageNamed:@"user_header_placehoulder"]];
// self.nickNameLabel.text = model.room_name;
// self.IDLabel.text = [NSString stringWithFormat:@"ID:%@",model.room_id];
// NSString *fav = [NSString sr_showHotCountNum:model.favorite_count];
// self.followLabel.text = [NSString stringWithFormat:@"关注:%@",fav];
// NSString *online = [NSString sr_showHotCountNum:model.online_num];
// self.onlineLabel.text = [NSString stringWithFormat:@"在线:%@",online];
// NSString *come = [NSString sr_showHotCountNum:model.come_count];
// self.comeCountLabel.text = [NSString stringWithFormat:@"访问:%@",come];
// if (self.type == 0) {
// self.todayLabel.text = @"今日收益";
// }else{
// self.todayLabel.text = [NSString stringWithFormat:@"收益分成比例:%@%%",model.earnings_ratio];
// }
// NSString *money = [NSString sr_showHotCountNum:model.today_income];
// self.moneyLabel.text = [NSString stringWithFormat:@"%@",money];
// [self.typeImageView sd_setImageWithURL:[NSURL URLWithString:model.label_icon] placeholderImage:nil];
//// if ([model.label_id isEqualToString:@"111"]) {
//// //
//// self.typeImageView.image = [UIImage imageNamed:@"Mask group 5"];
//// }else if ([model.label_id isEqualToString:@"108"]) {
//// //
//// self.typeImageView.image = [UIImage imageNamed:@"Mask group 4"];
//// }else{
//// //
//// self.typeImageView.image = [UIImage imageNamed:@"Mask group 3"];
//// }
//}
-(void)setModel:(QXRoomListModel *)model{
_model = model;
[self.headerImageView sd_setImageWithURL:[NSURL URLWithString:model.room_cover] placeholderImage:[UIImage imageNamed:@"user_header_placehoulder"]];
self.nickNameLabel.text = model.room_name;
self.IDLabel.text = [NSString stringWithFormat:@"ID:%@",model.room_number];
NSString *fav = [NSString qx_showHotCountNum:model.follow_num.longLongValue];
self.followLabel.text = [NSString stringWithFormat:@"关注:%@",fav];
NSString *online = [NSString qx_showHotCountNum:model.online_num.longLongValue];
self.onlineLabel.text = [NSString stringWithFormat:@"在线:%@",online];
NSString *come = [NSString qx_showHotCountNum:model.visit_num.longLongValue];
self.comeCountLabel.text = [NSString stringWithFormat:@"访问:%@",come];
if (self.type == 0) {
self.todayLabel.text = @"今日收益";
}else{
self.todayLabel.text = [NSString stringWithFormat:@"收益分成比例:%@%%",model.ratio];
}
NSString *money = [NSString qx_showHotCountNum:model.today_profit.longLongValue];
self.moneyLabel.text = [NSString stringWithFormat:@"%@",money];
[self.typeImageView sd_setImageWithURL:[NSURL URLWithString:model.label_icon] placeholderImage:nil];
if (model.apply_status.intValue == 1) {
self.roomWaitImageView.hidden = NO;
}else{
self.roomWaitImageView.hidden = YES;
}
}
- (IBAction)roomDetailAction:(id)sender {
QXRoomDetailViewController *vc = [[QXRoomDetailViewController alloc] init];
vc.type = self.type;
vc.room_id = self.model.room_id;
[self.navigationController pushViewController:vc animated:YES];
}
- (IBAction)subsidyAction:(id)sender {
QXRoomSubsidyViewController *vc = [[QXRoomSubsidyViewController alloc] init];
vc.room_id = self.model.room_id;
[self.navigationController pushViewController:vc animated:YES];
}
-(NSArray *)bgImageNameArray{
if (!_bgImageNameArray) {
_bgImageNameArray = @[@"Group 7026",@"Group 7024",@"Group 7025"];
}
return _bgImageNameArray;
}
@end

View File

@@ -0,0 +1,227 @@
<?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" colorMatched="YES">
<device id="retina6_12" orientation="portrait" appearance="light"/>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23506"/>
<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"/>
<collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" id="gTV-IL-0wX" customClass="QXMyRoomListCell">
<rect key="frame" x="0.0" y="0.0" width="560" height="159"/>
<autoresizingMask key="autoresizingMask"/>
<view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
<rect key="frame" x="0.0" y="0.0" width="560" height="159"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="kMB-zj-bvu">
<rect key="frame" x="12" y="0.0" width="536" height="159"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="t6e-Ib-pCi">
<rect key="frame" x="0.0" y="0.0" width="536" height="159"/>
<color key="backgroundColor" red="0.95686274509803915" green="1" blue="0.96470588235294119" alpha="1" colorSpace="calibratedRGB"/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
<integer key="value" value="10"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</imageView>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="user_header_placehoulder" translatesAutoresizingMaskIntoConstraints="NO" id="hCx-Bc-lup">
<rect key="frame" x="14" y="21" width="65" height="65"/>
<constraints>
<constraint firstAttribute="width" constant="65" id="Swl-8G-a2W"/>
<constraint firstAttribute="height" constant="65" id="rWW-H6-KUK"/>
</constraints>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
<integer key="value" value="6"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</imageView>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="n8c-Bl-dxD">
<rect key="frame" x="87" y="21" width="38" height="17"/>
<constraints>
<constraint firstAttribute="width" constant="38" id="1Pz-9J-qqg"/>
<constraint firstAttribute="height" constant="17" id="hS9-SD-vrA"/>
</constraints>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
<integer key="value" value="6"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="用户昵称" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="N2H-oT-j7d">
<rect key="frame" x="133" y="20.666666666666668" width="59.666666666666657" height="18.000000000000004"/>
<fontDescription key="fontDescription" type="system" pointSize="15"/>
<color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="ID:123456789" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="NQD-O5-Mxv">
<rect key="frame" x="87" y="44" width="86.666666666666686" height="15.666666666666664"/>
<fontDescription key="fontDescription" type="system" pointSize="13"/>
<color key="textColor" red="0.40000000000000002" green="0.40000000000000002" blue="0.40000000000000002" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="关注:1234" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="gwx-5C-Dyi">
<rect key="frame" x="86.999999999999986" y="70.333333333333329" width="145.66666666666663" height="15.666666666666671"/>
<fontDescription key="fontDescription" type="system" pointSize="13"/>
<color key="textColor" white="0.5" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="在线:1.2W" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="UEZ-KG-LO0">
<rect key="frame" x="232.66666666666669" y="70.333333333333329" width="145.66666666666669" height="16"/>
<fontDescription key="fontDescription" type="system" pointSize="13"/>
<color key="textColor" white="0.5" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="访问:1234" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="RxR-I5-aqT">
<rect key="frame" x="378.33333333333331" y="70.333333333333329" width="145.66666666666669" height="16"/>
<fontDescription key="fontDescription" type="system" pointSize="13"/>
<color key="textColor" white="0.5" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="123W" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="7dX-Cp-SDr">
<rect key="frame" x="480.33333333333331" y="20" width="43.666666666666686" height="19.333333333333329"/>
<fontDescription key="fontDescription" type="boldSystem" pointSize="16"/>
<color key="textColor" red="1" green="0.54117647059999996" blue="0.80000000000000004" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="今日收益" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="xiq-z8-B3x">
<rect key="frame" x="472.33333333333331" y="45.666666666666664" width="51.666666666666686" height="16"/>
<fontDescription key="fontDescription" type="system" pointSize="13"/>
<color key="textColor" white="0.5" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
<nil key="highlightedColor"/>
</label>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="k0N-ev-a0T">
<rect key="frame" x="12" y="99" width="512" height="0.6666666666666714"/>
<color key="backgroundColor" red="0.88627450980392153" green="0.88627450980392153" blue="0.88627450980392153" alpha="1" colorSpace="calibratedRGB"/>
<constraints>
<constraint firstAttribute="height" constant="0.5" id="Dhz-Jd-Tft"/>
</constraints>
</view>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="ay1-ie-dOO">
<rect key="frame" x="106" y="109.66666666666667" width="82" height="30.000000000000014"/>
<constraints>
<constraint firstAttribute="height" constant="30" id="DWX-hC-OPc"/>
<constraint firstAttribute="width" constant="82" id="bdv-Lj-M5Q"/>
</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="房间补贴"/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
<integer key="value" value="15"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
<connections>
<action selector="subsidyAction:" destination="gTV-IL-0wX" eventType="touchUpInside" id="4uu-E6-s4b"/>
</connections>
</button>
<imageView hidden="YES" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="my_room_wait" translatesAutoresizingMaskIntoConstraints="NO" id="3bm-oL-g9B">
<rect key="frame" x="466" y="89" width="64" height="64"/>
<constraints>
<constraint firstAttribute="height" constant="64" id="Btr-TI-Qth"/>
<constraint firstAttribute="width" constant="64" id="sSX-Jv-Huj"/>
</constraints>
</imageView>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="sme-1q-gFv">
<rect key="frame" x="12" y="109.66666666666667" width="82" height="30.000000000000014"/>
<constraints>
<constraint firstAttribute="width" constant="82" id="BB4-TU-RLg"/>
<constraint firstAttribute="height" constant="30" id="eh6-C7-fpO"/>
</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="房间明细"/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
<integer key="value" value="15"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
<connections>
<action selector="roomDetailAction:" destination="gTV-IL-0wX" eventType="touchUpInside" id="Lxe-l2-77m"/>
</connections>
</button>
</subviews>
<constraints>
<constraint firstItem="gwx-5C-Dyi" firstAttribute="leading" secondItem="n8c-Bl-dxD" secondAttribute="leading" id="08v-sk-SNR"/>
<constraint firstItem="UEZ-KG-LO0" firstAttribute="width" secondItem="gwx-5C-Dyi" secondAttribute="width" id="6FW-rs-eE1"/>
<constraint firstItem="n8c-Bl-dxD" firstAttribute="top" secondItem="hCx-Bc-lup" secondAttribute="top" id="8eD-Qr-rlD"/>
<constraint firstAttribute="bottom" secondItem="t6e-Ib-pCi" secondAttribute="bottom" id="AhH-J8-YGz"/>
<constraint firstItem="sme-1q-gFv" firstAttribute="top" secondItem="k0N-ev-a0T" secondAttribute="bottom" constant="10" id="Bwd-Aa-dIn"/>
<constraint firstItem="N2H-oT-j7d" firstAttribute="centerY" secondItem="n8c-Bl-dxD" secondAttribute="centerY" id="Cvt-jd-YRa"/>
<constraint firstAttribute="trailing" secondItem="RxR-I5-aqT" secondAttribute="trailing" constant="12" id="EPe-MU-H2n"/>
<constraint firstAttribute="trailing" secondItem="3bm-oL-g9B" secondAttribute="trailing" constant="6" id="FFG-1q-qus"/>
<constraint firstItem="N2H-oT-j7d" firstAttribute="leading" secondItem="n8c-Bl-dxD" secondAttribute="trailing" constant="8" symbolic="YES" id="IUg-ec-S0W"/>
<constraint firstItem="UEZ-KG-LO0" firstAttribute="leading" secondItem="gwx-5C-Dyi" secondAttribute="trailing" id="KiF-aV-j2i"/>
<constraint firstItem="NQD-O5-Mxv" firstAttribute="leading" secondItem="n8c-Bl-dxD" secondAttribute="leading" id="LkZ-It-52D"/>
<constraint firstItem="n8c-Bl-dxD" firstAttribute="leading" secondItem="hCx-Bc-lup" secondAttribute="trailing" constant="8" id="Ozs-3q-8HK"/>
<constraint firstAttribute="trailing" secondItem="t6e-Ib-pCi" secondAttribute="trailing" id="Q80-US-afM"/>
<constraint firstAttribute="bottom" secondItem="3bm-oL-g9B" secondAttribute="bottom" constant="6" id="Qrl-mz-QDv"/>
<constraint firstItem="NQD-O5-Mxv" firstAttribute="top" secondItem="n8c-Bl-dxD" secondAttribute="bottom" constant="6" id="SEb-mJ-Hs3"/>
<constraint firstItem="RxR-I5-aqT" firstAttribute="leading" secondItem="UEZ-KG-LO0" secondAttribute="trailing" id="SHN-YW-EED"/>
<constraint firstItem="ay1-ie-dOO" firstAttribute="leading" secondItem="sme-1q-gFv" secondAttribute="trailing" constant="12" id="Uh7-dB-EuG"/>
<constraint firstItem="RxR-I5-aqT" firstAttribute="centerY" secondItem="gwx-5C-Dyi" secondAttribute="centerY" id="VVf-mE-Zsv"/>
<constraint firstItem="gwx-5C-Dyi" firstAttribute="bottom" secondItem="hCx-Bc-lup" secondAttribute="bottom" id="Zpq-MJ-IFT"/>
<constraint firstItem="sme-1q-gFv" firstAttribute="leading" secondItem="kMB-zj-bvu" secondAttribute="leading" constant="12" id="bEe-Ns-MKE"/>
<constraint firstItem="hCx-Bc-lup" firstAttribute="leading" secondItem="kMB-zj-bvu" secondAttribute="leading" constant="14" id="clK-gP-XU6"/>
<constraint firstItem="UEZ-KG-LO0" firstAttribute="centerY" secondItem="gwx-5C-Dyi" secondAttribute="centerY" id="eNF-UM-jtW"/>
<constraint firstItem="t6e-Ib-pCi" firstAttribute="top" secondItem="kMB-zj-bvu" secondAttribute="top" id="epf-k6-tdd"/>
<constraint firstAttribute="trailing" secondItem="7dX-Cp-SDr" secondAttribute="trailing" constant="12" id="exw-Lu-6EK"/>
<constraint firstItem="xiq-z8-B3x" firstAttribute="centerY" secondItem="hCx-Bc-lup" secondAttribute="centerY" id="hCb-to-coE"/>
<constraint firstItem="k0N-ev-a0T" firstAttribute="top" secondItem="hCx-Bc-lup" secondAttribute="bottom" constant="13" id="hrQ-j8-uOu"/>
<constraint firstItem="RxR-I5-aqT" firstAttribute="width" secondItem="gwx-5C-Dyi" secondAttribute="width" id="jH8-sQ-Y2W"/>
<constraint firstItem="7dX-Cp-SDr" firstAttribute="centerY" secondItem="n8c-Bl-dxD" secondAttribute="centerY" id="k1v-v1-rfA"/>
<constraint firstItem="hCx-Bc-lup" firstAttribute="top" secondItem="kMB-zj-bvu" secondAttribute="top" constant="21" id="lUy-k6-65s"/>
<constraint firstAttribute="trailing" secondItem="k0N-ev-a0T" secondAttribute="trailing" constant="12" id="osG-Ae-UXc"/>
<constraint firstItem="t6e-Ib-pCi" firstAttribute="leading" secondItem="kMB-zj-bvu" secondAttribute="leading" id="r2d-Lm-mmZ"/>
<constraint firstItem="k0N-ev-a0T" firstAttribute="leading" secondItem="kMB-zj-bvu" secondAttribute="leading" constant="12" id="rB0-hW-4Ld"/>
<constraint firstAttribute="trailing" secondItem="xiq-z8-B3x" secondAttribute="trailing" constant="12" id="ukL-M0-WWd"/>
<constraint firstItem="ay1-ie-dOO" firstAttribute="centerY" secondItem="sme-1q-gFv" secondAttribute="centerY" id="vdN-zt-xpb"/>
</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>
</view>
<constraints>
<constraint firstAttribute="trailing" secondItem="kMB-zj-bvu" secondAttribute="trailing" constant="12" id="6om-tJ-1bC"/>
<constraint firstItem="kMB-zj-bvu" firstAttribute="top" secondItem="gTV-IL-0wX" secondAttribute="top" id="e9u-jg-kXk"/>
<constraint firstAttribute="bottom" secondItem="kMB-zj-bvu" secondAttribute="bottom" id="qDt-fJ-99W"/>
<constraint firstItem="kMB-zj-bvu" firstAttribute="leading" secondItem="gTV-IL-0wX" secondAttribute="leading" constant="12" id="tz1-GN-mJn"/>
</constraints>
<size key="customSize" width="560" height="94"/>
<connections>
<outlet property="IDLabel" destination="NQD-O5-Mxv" id="T7K-Fu-olU"/>
<outlet property="bgImageView" destination="t6e-Ib-pCi" id="kde-Zh-JSf"/>
<outlet property="comeCountLabel" destination="RxR-I5-aqT" id="Ros-Uf-7C7"/>
<outlet property="followLabel" destination="gwx-5C-Dyi" id="uTA-Os-MrH"/>
<outlet property="headerImageView" destination="hCx-Bc-lup" id="bfX-FC-RjW"/>
<outlet property="moneyLabel" destination="7dX-Cp-SDr" id="igl-zs-dLw"/>
<outlet property="nickNameLabel" destination="N2H-oT-j7d" id="Zrg-Bj-xZR"/>
<outlet property="onlineLabel" destination="UEZ-KG-LO0" id="XG2-KV-U11"/>
<outlet property="roomDetailBtn" destination="sme-1q-gFv" id="bZb-3R-doL"/>
<outlet property="roomSubsidyBtn" destination="ay1-ie-dOO" id="USR-Gf-Jf1"/>
<outlet property="roomWaitImageView" destination="3bm-oL-g9B" id="Kwo-fW-Xr5"/>
<outlet property="todayLabel" destination="xiq-z8-B3x" id="8ct-tt-KqL"/>
<outlet property="typeImageView" destination="n8c-Bl-dxD" id="KCF-la-KYq"/>
</connections>
<point key="canvasLocation" x="528.24427480916029" y="35.563380281690144"/>
</collectionViewCell>
</objects>
<resources>
<image name="my_room_wait" width="64" height="64"/>
<image name="user_header_placehoulder" width="40" height="40"/>
</resources>
</document>

View File

@@ -0,0 +1,38 @@
//
// QXRoomDetailHeaderView.h
// IsLandVoice
//
// Created by 启星 on 2025/3/5.
//
#import <UIKit/UIKit.h>
#import "BRDatePickerView.h"
#import "QXRoomWaterModel.h"
NS_ASSUME_NONNULL_BEGIN
@interface QXRoomDetailHeaderView : UIView
@property (nonatomic,strong)QXRoomDetailModel *model;
@property (nonatomic,copy)void(^chooseDateBlock)(NSString*startTime,NSString*endTime);
@end
@interface QXDatePickerView : UIView
@property (nonatomic,strong)UIView *bgView;
@property (nonatomic,strong)UIButton *cancelBtn;
@property (nonatomic,strong)UIButton *doneBtn;
@property (nonatomic,strong)UIButton *beginTimeBtn;
@property (nonatomic,strong)UIView *beginTimeLine;
@property (nonatomic,strong)UILabel *centerLabel;
@property (nonatomic,strong)UIButton *endTimeBtn;
@property (nonatomic,strong)UIView *endTimeLine;
@property (nonatomic,strong)UIView *pickerBGView;
@property (nonatomic,strong)BRDatePickerView *pickerView;
@property (nonatomic, assign)BRDatePickerMode pickerMode;
@property (nonatomic,strong)NSDate* beginDate;
@property (nonatomic,strong)NSDate* endDate;
@property (nonatomic,copy)void(^chooseDateBlock)(NSString*startTime,NSString*endTime);
@property (nonatomic,copy)void(^selectedDateBlock)(NSString*startTime,NSDate*startDate,NSString*endTime,NSDate*endDate);
-(void)show;
-(void)hide;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,382 @@
//
// QXRoomDetailHeaderView.m
// IsLandVoice
//
// Created by on 2025/3/5.
//
#import "QXRoomDetailHeaderView.h"
#import "UIButton+QX.h"
@class QXDatePickerView;
@interface QXRoomDetailHeaderView()
@property (nonatomic,strong)UIImageView*bigBgImageView;
@property (nonatomic,strong)UIImageView*bgImageView;
@property (nonatomic,strong)UIImageView*bottomBGView;
@property (nonatomic,strong)UIImageView*allPriceImageView;
@property (nonatomic,strong)UILabel*allPriceTitleLabel;
@property (nonatomic,strong)UILabel*allPriceLabel;
@property (nonatomic,strong)UILabel*allWaterTitleLabel;
@property (nonatomic,strong)UILabel*allWaterLabel;
@property (nonatomic,strong)UIImageView*allWaterImageView;
@property (nonatomic,strong)UIButton*timeBtn;
@property (nonatomic,strong)QXDatePickerView *pickerView;
@end
@implementation QXRoomDetailHeaderView
- (instancetype)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
[self initSubView];
}
return self;
}
-(void)initSubView{
self.backgroundColor = [UIColor clearColor];
[self addSubview:self.bigBgImageView];
[self.bigBgImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self);
make.right.equalTo(self);
make.top.equalTo(self);
make.bottom.equalTo(self);
}];
[self addSubview:self.bottomBGView];
// [self.bottomBGView mas_makeConstraints:^(MASConstraintMaker *make) {
// make.left.equalTo(self);
// make.right.equalTo(self);
// make.top.equalTo(self);
// make.bottom.equalTo(self);
// }];
[self addSubview:self.bgImageView];
[self.bgImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self).offset(16);
make.right.equalTo(self).offset(-16);
make.top.equalTo(self).offset(11+kSafeAreaTop+44);
make.bottom.equalTo(self);
}];
[self addSubview:self.allPriceTitleLabel];
[self.allPriceTitleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.bgImageView).offset(16);
make.top.equalTo(self.bgImageView).offset(13);
make.width.mas_equalTo(128);
make.height.mas_equalTo(20);
}];
[self addSubview:self.allPriceImageView];
[self.allPriceImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.allPriceTitleLabel);
make.top.equalTo(self.bgImageView).offset(35);
make.height.width.mas_equalTo(40);
}];
[self addSubview:self.allPriceLabel];
[self.allPriceLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.allPriceImageView.mas_right).offset(5);
make.top.equalTo(self.bgImageView).offset(32);
make.right.equalTo(self.bgImageView).offset(-16);
make.height.mas_equalTo(45);
}];
[self addSubview:self.allWaterTitleLabel];
[self.allWaterTitleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.bgImageView).offset(16);
make.top.equalTo(self.bgImageView).offset(87);
make.right.equalTo(self.bgImageView).offset(-16);
make.height.mas_equalTo(20);
}];
[self addSubview:self.allWaterImageView];
[self.allWaterImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.allWaterTitleLabel);
make.top.equalTo(self.bgImageView).offset(107);
make.height.width.mas_equalTo(20);
}];
[self addSubview:self.allWaterLabel];
[self.allWaterLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.allWaterImageView.mas_right).offset(5);
make.top.equalTo(self.bgImageView).offset(107);
make.right.equalTo(self.bgImageView).offset(-16);
make.height.mas_equalTo(20);
}];
[self addSubview:self.timeBtn];
[self.timeBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.equalTo(self.bgImageView).offset(-12);
make.centerY.equalTo(self.allPriceTitleLabel);
make.width.mas_greaterThanOrEqualTo(60);
make.height.mas_equalTo(40);
}];
}
-(void)layoutSubviews{
[super layoutSubviews];
self.bottomBGView.bottom = self.height;
}
-(void)timeAction:(UIButton*)sender{
[self.pickerView show];
}
-(void)setModel:(QXRoomDetailModel *)model{
_model = model;
self.allWaterLabel.text = [NSString stringWithFormat:@"%.2f",model.total_amount];;
self.allPriceLabel.text = [NSString stringWithFormat:@"%.2f",model.total_earning];
}
-(UIImageView *)bgImageView{
if (!_bgImageView) {
_bgImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"mine_room_water_bg"]];
_bgImageView.contentMode = UIViewContentModeScaleToFill;
}
return _bgImageView;
}
-(UIImageView *)bigBgImageView{
if (!_bigBgImageView) {
_bigBgImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"detail_bg"]];
_bigBgImageView.contentMode = UIViewContentModeScaleToFill;
}
return _bigBgImageView;
}
-(UIImageView *)bottomBGView{
if (!_bottomBGView) {
UIImage*img = [UIImage imageNamed:@"mine_room_water_bg"];
CGFloat height = (SCREEN_WIDTH-32)/img.size.width*img.size.height;
_bottomBGView = [[UIImageView alloc] initWithFrame:CGRectMake(0, kSafeAreaTop+44+height/2.0, SCREEN_WIDTH, height/2.0)];
_bottomBGView.backgroundColor = [UIColor whiteColor];
[_bottomBGView addRoundedCornersWithRadius:16 byRoundingCorners:(UIRectCornerTopRight|UIRectCornerTopLeft)];
}
return _bottomBGView;
}
-(UILabel *)allPriceTitleLabel{
if (!_allPriceTitleLabel) {
_allPriceTitleLabel = [[UILabel alloc] init];
_allPriceTitleLabel.textColor = [UIColor colorWithHexString:@"#999999"];
_allPriceTitleLabel.font = [UIFont systemFontOfSize:13];
_allPriceTitleLabel.text = @"累计收益";
}
return _allPriceTitleLabel;
}
-(UILabel *)allPriceLabel{
if (!_allPriceLabel) {
_allPriceLabel = [[UILabel alloc] init];
_allPriceLabel.textColor = [UIColor colorWithHexString:@"#333333"];
_allPriceLabel.font = [UIFont boldSystemFontOfSize:33];
_allPriceLabel.text = @"-";
}
return _allPriceLabel;
}
-(UILabel *)allWaterTitleLabel{
if (!_allWaterTitleLabel) {
_allWaterTitleLabel = [[UILabel alloc] init];
_allWaterTitleLabel.textColor = [UIColor colorWithHexString:@"#999999"];
_allWaterTitleLabel.font = [UIFont systemFontOfSize:13];
_allWaterTitleLabel.text = @"累计流水";
}
return _allWaterTitleLabel;
}
-(UIImageView *)allWaterImageView{
if (!_allWaterImageView) {
_allWaterImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"wallet_corn"]];
}
return _allWaterImageView;
}
-(UIImageView *)allPriceImageView{
if (!_allPriceImageView) {
_allPriceImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"wallet_diamond"]];
}
return _allPriceImageView;
}
-(UILabel *)allWaterLabel{
if (!_allWaterLabel) {
_allWaterLabel = [[UILabel alloc] init];
_allWaterLabel.textColor = [UIColor colorWithHexString:@"#333333"];
_allWaterLabel.font = [UIFont boldSystemFontOfSize:14];
_allWaterLabel.text = @"-";
}
return _allWaterLabel;
}
-(UIButton *)timeBtn{
if (!_timeBtn) {
_timeBtn = [[UIButton alloc] init];
[_timeBtn setTitle:@"全部" forState:UIControlStateNormal];
[_timeBtn setImage:[UIImage imageNamed:@"下拉"] forState:UIControlStateNormal];
[_timeBtn setTitleColor:[UIColor colorWithHexString:@"#333333"] forState:(UIControlStateNormal)];
_timeBtn.titleLabel.font = [UIFont systemFontOfSize:13];
[_timeBtn qx_layoutButtonNOSizeToFitWithEdgeInsetsStyle:(QXButtonEdgeInsetsStyleRight) imageTitleSpace:3];
[_timeBtn addTarget:self action:@selector(timeAction:) forControlEvents:(UIControlEventTouchUpInside)];
}
return _timeBtn;
}
-(QXDatePickerView *)pickerView{
if (!_pickerView) {
_pickerView = [[QXDatePickerView alloc] init];
MJWeakSelf
_pickerView.chooseDateBlock = ^(NSString * _Nonnull startTime, NSString * _Nonnull endTime) {
[weakSelf.timeBtn setTitle:[NSString stringWithFormat:@"%@至%@",startTime,endTime] forState:(UIControlStateNormal)];
[weakSelf.timeBtn qx_layoutButtonNOSizeToFitWithEdgeInsetsStyle:(QXButtonEdgeInsetsStyleRight) imageTitleSpace:3];
if (weakSelf.chooseDateBlock) {
weakSelf.chooseDateBlock(startTime, endTime);
}
};
}
return _pickerView;
}
@end
@implementation QXDatePickerView
- (instancetype)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
self.frame = CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
[self createViews];
}
return self;
}
-(void)createViews{
self.backgroundColor = [UIColor colorWithWhite:0.0 alpha:0.5];
self.bgView = [[UIView alloc] initWithFrame:CGRectMake(0, SCREEN_HEIGHT, SCREEN_WIDTH, ScaleWidth(400))];
self.bgView.backgroundColor = [UIColor whiteColor];
[self.bgView addRoundedCornersWithRadius:16 byRoundingCorners:(UIRectCornerTopLeft|UIRectCornerTopRight)];
[self addSubview:self.bgView];
self.cancelBtn = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 70, 40)];
[self.cancelBtn setTitle:@"取消" forState:(UIControlStateNormal)];
[self.cancelBtn setTitleColor:[UIColor colorWithHexString:@"#333333"] forState:(UIControlStateNormal)];
self.cancelBtn.titleLabel.font = [UIFont systemFontOfSize:15];
[self.cancelBtn addTarget:self action:@selector(cancelAction) forControlEvents:(UIControlEventTouchUpInside)];
[self.bgView addSubview:self.cancelBtn];
self.doneBtn = [[UIButton alloc] initWithFrame:CGRectMake(self.bgView.width-70, 0, 70, 40)];
[self.doneBtn setTitle:@"完成" forState:(UIControlStateNormal)];
[self.doneBtn addTarget:self action:@selector(doneAction) forControlEvents:(UIControlEventTouchUpInside)];
[self.doneBtn setTitleColor:[UIColor colorWithHexString:@"#333333"] forState:(UIControlStateNormal)];
self.doneBtn.titleLabel.font = [UIFont systemFontOfSize:15];
[self.bgView addSubview:self.doneBtn];
CGFloat btnWith = (self.bgView.width-40*2-25)/2.0;
self.beginTimeBtn = [[UIButton alloc] initWithFrame:CGRectMake(40, self.cancelBtn.bottom, btnWith, 40)];
[self.beginTimeBtn setTitle:@"开始时间" forState:(UIControlStateNormal)];
[self.beginTimeBtn setTitleColor:[UIColor colorWithHexString:@"#BBBBBB"] forState:(UIControlStateNormal)];
[self.beginTimeBtn setTitleColor:[UIColor colorWithHexString:@"#333333"] forState:(UIControlStateSelected)];
[self.beginTimeBtn addTarget:self action:@selector(beginTimeAction) forControlEvents:(UIControlEventTouchUpInside)];
self.beginTimeBtn.titleLabel.font = [UIFont systemFontOfSize:14.f];
[self.bgView addSubview:self.beginTimeBtn];
self.beginTimeLine = [[UIView alloc] initWithFrame:CGRectMake(self.beginTimeBtn.left, self.beginTimeBtn.bottom, btnWith, 1)];
self.beginTimeLine.backgroundColor = [UIColor colorWithHexString:@"#BBBBBB"];
[self.bgView addSubview:self.beginTimeLine];
self.endTimeBtn = [[UIButton alloc] initWithFrame:CGRectMake(self.bgView.width-40-btnWith, self.beginTimeBtn.top, btnWith, 40)];
[self.endTimeBtn setTitle:@"结束时间" forState:(UIControlStateNormal)];
[self.endTimeBtn setTitleColor:[UIColor colorWithHexString:@"#BBBBBB"] forState:(UIControlStateNormal)];
[self.endTimeBtn setTitleColor:[UIColor colorWithHexString:@"#333333"] forState:(UIControlStateSelected)];
[self.endTimeBtn addTarget:self action:@selector(endTimeAction) forControlEvents:(UIControlEventTouchUpInside)];
self.endTimeBtn.titleLabel.font = [UIFont systemFontOfSize:14.f];
[self.bgView addSubview:self.endTimeBtn];
self.endTimeLine = [[UIView alloc] initWithFrame:CGRectMake(self.endTimeBtn.left, self.endTimeBtn.bottom, btnWith, 1)];
self.endTimeLine.backgroundColor = [UIColor colorWithHexString:@"#BBBBBB"];
[self.bgView addSubview:self.endTimeLine];
self.centerLabel = [[UILabel alloc] initWithFrame:CGRectMake(self.beginTimeBtn.right, self.beginTimeBtn.top, self.endTimeBtn.left-self.beginTimeBtn.right, 40)];
self.centerLabel.textAlignment = NSTextAlignmentCenter;
self.centerLabel.text = @"至";
self.centerLabel.textColor = [UIColor colorWithHexString:@"#666666"];
self.centerLabel.font = [UIFont systemFontOfSize:14];
[self.bgView addSubview:self.centerLabel];
self.pickerBGView = [[UIView alloc] initWithFrame:CGRectMake(0, self.beginTimeBtn.bottom+15, self.bgView.width, self.bgView.height-self.beginTimeBtn.bottom-30)];
[self.bgView addSubview:self.pickerBGView];
[self.pickerView addPickerToView:self.pickerBGView];
[self beginTimeAction];
}
-(void)beginTimeAction{
self.beginTimeBtn.selected = YES;
self.beginTimeLine.backgroundColor = [UIColor colorWithHexString:@"#333333"];
self.endTimeBtn.selected = NO;
self.endTimeLine.backgroundColor = [UIColor colorWithHexString:@"#BBBBBB"];
}
-(void)endTimeAction{
self.endTimeBtn.selected = YES;
self.endTimeLine.backgroundColor = [UIColor colorWithHexString:@"#333333"];
self.beginTimeBtn.selected = NO;
self.beginTimeLine.backgroundColor = [UIColor colorWithHexString:@"#BBBBBB"];
}
-(void)cancelAction{
[self hide];
}
-(void)doneAction{
if ([self.beginTimeBtn.titleLabel.text isEqualToString:@"开始时间"]) {
showToast(@"请选择开始时间");
return;
}
if ([self.endTimeBtn.titleLabel.text isEqualToString:@"结束时间"]) {
showToast(@"请选择结束时间");
return;
}
NSComparisonResult result = [self.endDate compare:self.beginDate];
if (result == NSOrderedAscending) {
showToast(@"结束时间早于开始时间");
return;
}
[self hide];
if (self.chooseDateBlock) {
self.chooseDateBlock(self.beginTimeBtn.titleLabel.text, self.endTimeBtn.titleLabel.text);
}
if (self.selectedDateBlock) {
self.selectedDateBlock(self.beginTimeBtn.titleLabel.text, self.beginDate, self.endTimeBtn.titleLabel.text, self.endDate);
}
}
-(void)show{
for (UIWindow *w in [UIApplication sharedApplication].windows) {
if ([w isKeyWindow]) {
[w addSubview:self];
break;
}
}
[UIView animateWithDuration:0.3 animations:^{
self.bgView.y = SCREEN_HEIGHT-ScaleWidth(400);
}];
}
-(void)hide{
[UIView animateWithDuration:0.3 animations:^{
self.bgView.y = SCREEN_HEIGHT;
} completion:^(BOOL finished) {
[self removeFromSuperview];
}];
}
-(void)setPickerMode:(BRDatePickerMode)pickerMode{
_pickerMode = pickerMode;
self.pickerView.pickerMode = pickerMode;
}
-(BRDatePickerView *)pickerView{
if (!_pickerView) {
_pickerView = [[BRDatePickerView alloc] initWithPickerMode:BRDatePickerModeYMD];
_pickerView.maxDate = [NSDate date];
_pickerView.minDate = [NSDate br_setYear:2020];
_pickerView.selectDate = [NSDate date];
_pickerView.isAutoSelect = YES;
MJWeakSelf
_pickerView.resultBlock = ^(NSDate * _Nullable selectDate, NSString * _Nullable selectValue) {
if (weakSelf.beginTimeBtn.selected) {
[weakSelf.beginTimeBtn setTitle:selectValue forState:(UIControlStateNormal)];
weakSelf.beginDate = selectDate;
}else{
[weakSelf.endTimeBtn setTitle:selectValue forState:(UIControlStateNormal)];
weakSelf.endDate = selectDate;
}
};
}
return _pickerView;
}
@end

View File

@@ -0,0 +1,21 @@
//
// QXRoomSubsidyCell.h
// IsLandVoice
//
// Created by 启星 on 2025/4/23.
//
#import <UIKit/UIKit.h>
#import "QXSubsidyModel.h"
NS_ASSUME_NONNULL_BEGIN
@interface QXRoomSubsidyCell : UITableViewCell
@property (weak, nonatomic) IBOutlet UILabel *titleLabel;
@property (weak, nonatomic) IBOutlet UILabel *ststusLabel;
@property (weak, nonatomic) IBOutlet UILabel *allWaterLabel;
@property (weak, nonatomic) IBOutlet UILabel *subsidyLabel;
@property (nonatomic,strong) QXSubsidyDetailModel *model;
+(instancetype)cellWithTableView:(UITableView *)tableView;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,36 @@
//
// QXRoomSubsidyCell.m
// IsLandVoice
//
// Created by on 2025/4/23.
//
#import "QXRoomSubsidyCell.h"
@implementation QXRoomSubsidyCell
+(instancetype)cellWithTableView:(UITableView *)tableView{
static NSString *cellId = @"QXRoomSubsidyCell";
QXRoomSubsidyCell *cell = [tableView dequeueReusableCellWithIdentifier:cellId];
if (!cell) {
cell = [[NSBundle mainBundle] loadNibNamed:cellId owner:nil options:nil].lastObject;
}
return cell;
}
-(void)setModel:(QXSubsidyDetailModel *)model{
_model = model;
self.allWaterLabel.text = [NSString stringWithFormat:@"累计流水:%.1f",model.total_transaction.doubleValue];
self.subsidyLabel.text = [NSString stringWithFormat:@"获得补贴:%.1f",model.subsidy_amount.doubleValue];
self.ststusLabel.text = model.status==1?@"已发放":@"未发放";
}
- (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,76 @@
<?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="117" id="KGk-i7-Jjw" customClass="QXRoomSubsidyCell">
<rect key="frame" x="0.0" y="0.0" width="503" height="117"/>
<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="503" height="117"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="UR5-5B-xN6">
<rect key="frame" x="16.000000000000004" y="11.999999999999998" width="42.333333333333343" height="19.333333333333329"/>
<fontDescription key="fontDescription" type="boldSystem" pointSize="16"/>
<color key="textColor" red="0.28627450980000002" green="0.28627450980000002" blue="0.28627450980000002" 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="nYK-5C-hPt">
<rect key="frame" x="451" y="13.333333333333336" width="36" height="17"/>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<color key="textColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" 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="kPU-jb-4hy">
<rect key="frame" x="16.000000000000004" y="88" width="35.333333333333343" height="17"/>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<color key="textColor" red="1" green="0.54117647058823526" blue="0.80000000000000004" 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="qzG-cY-9Rw">
<rect key="frame" x="451" y="88" width="36" height="17"/>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<color key="textColor" red="0.69803921568627447" green="0.396078431372549" blue="0.98039215686274506" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Gh3-4f-DsJ">
<rect key="frame" x="16" y="58" width="471" height="1"/>
<color key="backgroundColor" red="0.92549019607843142" green="0.92549019607843142" blue="0.92549019607843142" alpha="1" colorSpace="calibratedRGB"/>
<constraints>
<constraint firstAttribute="height" constant="1" id="QMb-fA-36Y"/>
</constraints>
</view>
</subviews>
<constraints>
<constraint firstItem="Gh3-4f-DsJ" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="16" id="4A7-l3-afF"/>
<constraint firstItem="kPU-jb-4hy" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="16" id="4gz-q1-clm"/>
<constraint firstItem="qzG-cY-9Rw" firstAttribute="centerY" secondItem="kPU-jb-4hy" secondAttribute="centerY" id="KZb-Hb-vTS"/>
<constraint firstAttribute="bottom" secondItem="kPU-jb-4hy" secondAttribute="bottom" constant="12" id="Mqk-fc-ej8"/>
<constraint firstItem="UR5-5B-xN6" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="16" id="QFg-RN-8Qa"/>
<constraint firstAttribute="trailing" secondItem="Gh3-4f-DsJ" secondAttribute="trailing" constant="16" id="ZTX-hU-e3i"/>
<constraint firstItem="Gh3-4f-DsJ" firstAttribute="centerY" secondItem="H2p-sc-9uM" secondAttribute="centerY" id="bXL-7Z-ee8"/>
<constraint firstAttribute="trailing" secondItem="nYK-5C-hPt" secondAttribute="trailing" constant="16" id="dRW-2J-pgO"/>
<constraint firstAttribute="trailing" secondItem="qzG-cY-9Rw" secondAttribute="trailing" constant="16" id="mOA-Co-wax"/>
<constraint firstItem="UR5-5B-xN6" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" constant="12" id="qK0-WO-1kB"/>
<constraint firstItem="nYK-5C-hPt" firstAttribute="centerY" secondItem="UR5-5B-xN6" secondAttribute="centerY" id="tT5-eT-9d4"/>
</constraints>
</tableViewCellContentView>
<viewLayoutGuide key="safeArea" id="aW0-zy-SZf"/>
<connections>
<outlet property="allWaterLabel" destination="kPU-jb-4hy" id="Taw-JH-3US"/>
<outlet property="ststusLabel" destination="nYK-5C-hPt" id="KAo-ro-KJ5"/>
<outlet property="subsidyLabel" destination="qzG-cY-9Rw" id="J65-1P-DAO"/>
<outlet property="titleLabel" destination="UR5-5B-xN6" id="xvb-1y-7yC"/>
</connections>
<point key="canvasLocation" x="278.62595419847327" y="45.422535211267608"/>
</tableViewCell>
</objects>
</document>

View File

@@ -0,0 +1,21 @@
//
// QXRoomSubsidyHistoryCell.h
// IsLandVoice
//
// Created by 启星 on 2025/4/23.
//
#import <UIKit/UIKit.h>
#import "QXSubsidyModel.h"
NS_ASSUME_NONNULL_BEGIN
@interface QXRoomSubsidyHistoryCell : UITableViewCell
@property (weak, nonatomic) IBOutlet UILabel *timeLabel;
@property (weak, nonatomic) IBOutlet UILabel *allWaterLabel;
@property (weak, nonatomic) IBOutlet UILabel *subsidyLabel;
@property (weak, nonatomic) IBOutlet UILabel *statusLabel;
@property (nonatomic,strong)QXSubsidyHistoryModel *model;
+(instancetype)cellWithTableView:(UITableView *)tableView;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,38 @@
//
// QXRoomSubsidyHistoryCell.m
// IsLandVoice
//
// Created by on 2025/4/23.
//
#import "QXRoomSubsidyHistoryCell.h"
@implementation QXRoomSubsidyHistoryCell
+(instancetype)cellWithTableView:(UITableView *)tableView{
static NSString *cellId = @"QXRoomSubsidyHistoryCell";
QXRoomSubsidyHistoryCell *cell = [tableView dequeueReusableCellWithIdentifier:cellId];
if (!cell) {
cell = [[NSBundle mainBundle] loadNibNamed:cellId owner:nil options:nil].lastObject;
}
return cell;
}
-(void)setModel:(QXSubsidyHistoryModel *)model{
_model = model;
self.allWaterLabel.text = [NSString stringWithFormat:@"%.1f",model.total_transaction.doubleValue];
self.subsidyLabel.text = [NSString stringWithFormat:@"%.1f",model.subsidy_amount.doubleValue];
self.timeLabel.text = [NSString stringWithFormat:@"%@-%@",model.start_time,model.end_time];
self.statusLabel.text = model.status==1?@"已发放":@"未发放";
self.statusLabel.textColor = model.status==1?[UIColor colorWithHexString:@"#999999"]:[UIColor colorWithHexString:@"#45D08C"];
}
- (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,76 @@
<?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="83" id="KGk-i7-Jjw" customClass="QXRoomSubsidyHistoryCell">
<rect key="frame" x="0.0" y="0.0" width="425" height="83"/>
<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="425" height="83"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="2zi-eo-2ps">
<rect key="frame" x="16" y="33" width="145" height="17"/>
<constraints>
<constraint firstAttribute="width" constant="145" id="3bZ-ss-pcv"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<color key="textColor" red="0.40000000000000002" green="0.40000000000000002" blue="0.40000000000000002" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="loq-dz-VQy">
<rect key="frame" x="284" y="33" width="65" height="17"/>
<constraints>
<constraint firstAttribute="width" constant="65" id="35B-OT-cUY"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<color key="textColor" red="0.40000000000000002" green="0.40000000000000002" blue="0.40000000000000002" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="7Lc-Lt-9ql">
<rect key="frame" x="359" y="33" width="50" height="17"/>
<constraints>
<constraint firstAttribute="width" constant="50" id="IYN-az-Gz2"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<color key="textColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="owo-ey-ihf">
<rect key="frame" x="171" y="33" width="103" height="17"/>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<color key="textColor" red="0.40000000000000002" green="0.40000000000000002" blue="0.40000000000000002" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<constraints>
<constraint firstItem="2zi-eo-2ps" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="16" id="5gC-Z6-Kmd"/>
<constraint firstItem="2zi-eo-2ps" firstAttribute="centerY" secondItem="H2p-sc-9uM" secondAttribute="centerY" id="6OL-ko-Ucx"/>
<constraint firstAttribute="trailing" secondItem="7Lc-Lt-9ql" secondAttribute="trailing" constant="16" id="C46-cS-qVe"/>
<constraint firstItem="7Lc-Lt-9ql" firstAttribute="centerY" secondItem="H2p-sc-9uM" secondAttribute="centerY" id="ETn-cT-Izd"/>
<constraint firstItem="owo-ey-ihf" firstAttribute="centerY" secondItem="H2p-sc-9uM" secondAttribute="centerY" id="O8E-j3-Xcx"/>
<constraint firstItem="7Lc-Lt-9ql" firstAttribute="leading" secondItem="loq-dz-VQy" secondAttribute="trailing" constant="10" id="ZQV-zN-mAX"/>
<constraint firstItem="loq-dz-VQy" firstAttribute="leading" secondItem="owo-ey-ihf" secondAttribute="trailing" constant="10" id="fzO-pK-ePn"/>
<constraint firstItem="loq-dz-VQy" firstAttribute="centerY" secondItem="H2p-sc-9uM" secondAttribute="centerY" id="nRg-Tp-DgM"/>
<constraint firstItem="owo-ey-ihf" firstAttribute="leading" secondItem="2zi-eo-2ps" secondAttribute="trailing" constant="10" id="ycF-fG-qTf"/>
</constraints>
</tableViewCellContentView>
<viewLayoutGuide key="safeArea" id="aW0-zy-SZf"/>
<connections>
<outlet property="allWaterLabel" destination="owo-ey-ihf" id="Bky-TJ-5OU"/>
<outlet property="statusLabel" destination="7Lc-Lt-9ql" id="c2d-ji-cbZ"/>
<outlet property="subsidyLabel" destination="loq-dz-VQy" id="fdL-3Z-HAS"/>
<outlet property="timeLabel" destination="2zi-eo-2ps" id="qGb-WO-qeC"/>
</connections>
<point key="canvasLocation" x="3.8167938931297707" y="13.028169014084508"/>
</tableViewCell>
</objects>
</document>

View File

@@ -0,0 +1,25 @@
//
// QXRoomWaterListCell.h
// IsLandVoice
//
// Created by 启星 on 2025/3/5.
//
#import <UIKit/UIKit.h>
#import "QXRoomSubsidyViewController.h"
#import "QXRoomWaterModel.h"
NS_ASSUME_NONNULL_BEGIN
@interface QXRoomWaterListCell : UITableViewCell
@property (weak, nonatomic) IBOutlet UIImageView *headerImageView;
@property (weak, nonatomic) IBOutlet UILabel *nameLabel;
@property (weak, nonatomic) IBOutlet UILabel *detailLabel;
@property (weak, nonatomic) IBOutlet UILabel *priceLabel;
@property (nonatomic,strong)QXRoomWaterDetailModel *model;
+(instancetype)cellWithTableView:(UITableView *)tableView;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,39 @@
//
// QXRoomWaterListCell.m
// IsLandVoice
//
// Created by on 2025/3/5.
//
#import "QXRoomWaterListCell.h"
@implementation QXRoomWaterListCell
+(instancetype)cellWithTableView:(UITableView *)tableView{
static NSString *cellId = @"QXRoomWaterListCell";
QXRoomWaterListCell *cell = [tableView dequeueReusableCellWithIdentifier:cellId];
if (!cell) {
cell = [[NSBundle mainBundle] loadNibNamed:cellId owner:nil options:nil].lastObject;
}
return cell;
}
-(void)setModel:(QXRoomWaterDetailModel *)model{
_model = model;
self.nameLabel.text = model.sender_nickname;
[self.headerImageView sd_setImageWithURL:[NSURL URLWithString:model.sender_avatar] placeholderImage:[UIImage imageNamed:@"user_header_placehoulder"]];
self.priceLabel.text = [NSString stringWithFormat:@"+%@",model.total_price];
self.detailLabel.text = [NSString stringWithFormat:@"赠送 %@ %@x%@",model.receive_nickname,model.gift_name,model.number];
}
- (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,85 @@
<?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>
<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="107" id="KGk-i7-Jjw" customClass="QXRoomWaterListCell">
<rect key="frame" x="0.0" y="0.0" width="507" height="107"/>
<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="507" height="107"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="user_header_placehoulder" translatesAutoresizingMaskIntoConstraints="NO" id="nkf-mf-eKj">
<rect key="frame" x="16" y="33" width="41" height="41"/>
<constraints>
<constraint firstAttribute="height" constant="41" id="RxF-Ai-6xe"/>
<constraint firstAttribute="width" constant="41" id="gYA-4Y-hpp"/>
</constraints>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
<real key="value" value="20.5"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="有你在身边" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="8hM-GO-e2F">
<rect key="frame" x="73" y="33" width="69.666666666666686" height="17"/>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="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="z01-RY-Nhw">
<rect key="frame" x="73" y="58.333333333333336" width="55.333333333333343" height="15.666666666666664"/>
<fontDescription key="fontDescription" type="system" pointSize="13"/>
<color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="+10.5元" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="2nf-4S-3Rw">
<rect key="frame" x="440" y="45" width="51" height="17"/>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="lo0-vK-rqG">
<rect key="frame" x="16" y="106.66666666666667" width="475" height="0.3333333333333286"/>
<color key="backgroundColor" red="0.92549019607843142" green="0.92549019607843142" blue="0.92549019607843142" alpha="1" colorSpace="calibratedRGB"/>
<constraints>
<constraint firstAttribute="height" constant="0.5" id="wSX-sv-RRQ"/>
</constraints>
</view>
</subviews>
<constraints>
<constraint firstItem="z01-RY-Nhw" firstAttribute="leading" secondItem="8hM-GO-e2F" secondAttribute="leading" id="LfE-bv-gr9"/>
<constraint firstItem="nkf-mf-eKj" firstAttribute="centerY" secondItem="H2p-sc-9uM" secondAttribute="centerY" id="RH8-NF-gom"/>
<constraint firstItem="nkf-mf-eKj" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="16" id="TVP-9J-v1o"/>
<constraint firstAttribute="trailing" secondItem="2nf-4S-3Rw" secondAttribute="trailing" constant="16" id="UMD-nM-f2y"/>
<constraint firstItem="z01-RY-Nhw" firstAttribute="bottom" secondItem="nkf-mf-eKj" secondAttribute="bottom" id="aXU-Jz-NJE"/>
<constraint firstItem="8hM-GO-e2F" firstAttribute="top" secondItem="nkf-mf-eKj" secondAttribute="top" id="eZY-bd-wIy"/>
<constraint firstItem="2nf-4S-3Rw" firstAttribute="centerY" secondItem="H2p-sc-9uM" secondAttribute="centerY" id="hja-Wp-5Db"/>
<constraint firstAttribute="bottom" secondItem="lo0-vK-rqG" secondAttribute="bottom" id="jXl-Gu-aPk"/>
<constraint firstAttribute="trailing" secondItem="lo0-vK-rqG" secondAttribute="trailing" constant="16" id="kjz-nU-ogz"/>
<constraint firstItem="lo0-vK-rqG" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="16" id="oH0-Up-tmQ"/>
<constraint firstItem="8hM-GO-e2F" firstAttribute="leading" secondItem="nkf-mf-eKj" secondAttribute="trailing" constant="16" id="vYA-ob-nie"/>
</constraints>
</tableViewCellContentView>
<viewLayoutGuide key="safeArea" id="aW0-zy-SZf"/>
<connections>
<outlet property="detailLabel" destination="z01-RY-Nhw" id="h2T-ML-JME"/>
<outlet property="headerImageView" destination="nkf-mf-eKj" id="zNR-ta-foX"/>
<outlet property="nameLabel" destination="8hM-GO-e2F" id="nHO-a5-7aY"/>
<outlet property="priceLabel" destination="2nf-4S-3Rw" id="2zd-Nj-Xli"/>
</connections>
<point key="canvasLocation" x="281.67938931297709" y="41.197183098591552"/>
</tableViewCell>
</objects>
<resources>
<image name="user_header_placehoulder" width="128" height="128"/>
</resources>
</document>