增加换肤功能
This commit is contained in:
34
QXLive/HomePage(声播)/View/首页/排行榜/QXMyRankView.h
Normal file
34
QXLive/HomePage(声播)/View/首页/排行榜/QXMyRankView.h
Normal file
@@ -0,0 +1,34 @@
|
||||
//
|
||||
// QXMyRankView.h
|
||||
// IsLandVoice
|
||||
//
|
||||
// Created by 启星 on 2025/3/4.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import "QXRankModel.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface QXMyRankView : UIView
|
||||
@property (weak, nonatomic) IBOutlet UIImageView *headerImageView;
|
||||
@property (weak, nonatomic) IBOutlet UILabel *nickNameLabel;
|
||||
@property (weak, nonatomic) IBOutlet UILabel *valueLabel;
|
||||
@property (weak, nonatomic) IBOutlet UILabel *rankResultLabel;
|
||||
@property (weak, nonatomic) IBOutlet UILabel *needLabel;
|
||||
@property (weak, nonatomic) IBOutlet UIImageView *valueBGImageView;
|
||||
|
||||
|
||||
@property (weak, nonatomic) IBOutlet UIImageView *headerImageView1;
|
||||
@property (weak, nonatomic) IBOutlet UIImageView *headerImageView2;
|
||||
@property (weak, nonatomic) IBOutlet UILabel *allNickNameLabel;
|
||||
@property (weak, nonatomic) IBOutlet UIImageView *headerImageViewBG;
|
||||
@property(nonatomic,assign)BOOL isCP;
|
||||
|
||||
@property (nonatomic,strong)QXMyRankModel *model;
|
||||
@property (nonatomic,strong)QXMyRankModel *roomModel;
|
||||
@property (nonatomic,strong)QXMyRankModel *guildModel;
|
||||
@property (nonatomic,strong)QXMyRankModel *cpModel;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
143
QXLive/HomePage(声播)/View/首页/排行榜/QXMyRankView.m
Normal file
143
QXLive/HomePage(声播)/View/首页/排行榜/QXMyRankView.m
Normal file
@@ -0,0 +1,143 @@
|
||||
//
|
||||
// QXMyRankView.m
|
||||
// IsLandVoice
|
||||
//
|
||||
// Created by 启星 on 2025/3/4.
|
||||
//
|
||||
|
||||
#import "QXMyRankView.h"
|
||||
@interface QXMyRankView()
|
||||
{
|
||||
CGRect tmpRect;
|
||||
}
|
||||
@end
|
||||
@implementation QXMyRankView
|
||||
- (instancetype)initWithFrame:(CGRect)frame
|
||||
{
|
||||
self = [super initWithFrame:frame];
|
||||
if (self) {
|
||||
self = [[[NSBundle mainBundle]loadNibNamed:@"QXMyRankView" owner:nil options:nil] lastObject];
|
||||
tmpRect = frame;
|
||||
self.frame = frame;
|
||||
}
|
||||
return self;
|
||||
}
|
||||
-(void)setIsCP:(BOOL)isCP{
|
||||
_isCP = isCP;
|
||||
self.headerImageView1.hidden = !isCP;
|
||||
self.headerImageView2.hidden = !isCP;
|
||||
self.allNickNameLabel.hidden = !isCP;
|
||||
self.headerImageViewBG.hidden = !isCP;
|
||||
|
||||
self.headerImageView.hidden = isCP;
|
||||
self.nickNameLabel.hidden = isCP;
|
||||
self.valueLabel.hidden = isCP;
|
||||
self.valueBGImageView.hidden = isCP;
|
||||
}
|
||||
|
||||
-(void)setModel:(QXMyRankModel *)model{
|
||||
_model = model;
|
||||
self.nickNameLabel.text = model.nickname;
|
||||
if (model.rank.intValue <= 0) {
|
||||
self.rankResultLabel.text = @"暂未上榜";
|
||||
}else{
|
||||
NSString *s = [NSString stringWithFormat:@"第%@名",model.rank];
|
||||
NSMutableAttributedString *attr = [[NSMutableAttributedString alloc] initWithString:s];
|
||||
[attr yy_setColor:[UIColor colorWithHexString:@"#FF8ACC"] range:NSMakeRange(1, model.rank.length)];
|
||||
self.rankResultLabel.attributedText = attr;
|
||||
}
|
||||
[self.headerImageView sd_setImageWithURL:[NSURL URLWithString:model.avatar] placeholderImage:[UIImage imageNamed:@"user_header_placehoulder"]];
|
||||
self.valueLabel.text = model.total;
|
||||
NSString *diff = model.diff;
|
||||
NSString *s1 = [NSString stringWithFormat:@"距离上一名差%@",diff];
|
||||
NSMutableAttributedString *attr1 = [[NSMutableAttributedString alloc] initWithString:s1];
|
||||
[attr1 yy_setColor:[UIColor colorWithHexString:@"#FF8ACC"] range:NSMakeRange(6, diff.length)];
|
||||
self.needLabel.attributedText = attr1;
|
||||
}
|
||||
-(void)setRoomModel:(QXMyRankModel *)roomModel{
|
||||
_roomModel = roomModel;
|
||||
self.nickNameLabel.text = roomModel.room_name;
|
||||
if (roomModel.rank.intValue <= 0) {
|
||||
self.rankResultLabel.text = @"暂未上榜";
|
||||
}else{
|
||||
NSString *s = [NSString stringWithFormat:@"第%@名",roomModel.rank];
|
||||
NSMutableAttributedString *attr = [[NSMutableAttributedString alloc] initWithString:s];
|
||||
[attr yy_setColor:[UIColor colorWithHexString:@"#FF8ACC"] range:NSMakeRange(1, roomModel.rank.length)];
|
||||
self.rankResultLabel.attributedText = attr;
|
||||
}
|
||||
[self.headerImageView sd_setImageWithURL:[NSURL URLWithString:roomModel.room_cover] placeholderImage:[UIImage imageNamed:@"user_header_placehoulder"]];
|
||||
self.valueLabel.text = roomModel.total;
|
||||
NSString *diff = roomModel.diff;
|
||||
NSString *s1 = [NSString stringWithFormat:@"距离上一名差%@",roomModel.diff];
|
||||
NSMutableAttributedString *attr1 = [[NSMutableAttributedString alloc] initWithString:s1];
|
||||
[attr1 yy_setColor:[UIColor colorWithHexString:@"#FF8ACC"] range:NSMakeRange(6, diff.length)];
|
||||
self.needLabel.attributedText = attr1;
|
||||
}
|
||||
-(void)setGuildModel:(QXMyRankModel *)guildModel{
|
||||
_guildModel = guildModel;
|
||||
if (guildModel.guild_name.length>0) {
|
||||
self.nickNameLabel.text = guildModel.guild_name;
|
||||
}else{
|
||||
self.nickNameLabel.text = @"暂无公会";
|
||||
}
|
||||
if (guildModel.rank.intValue <= 0) {
|
||||
self.rankResultLabel.text = @"暂未上榜";
|
||||
}else{
|
||||
NSString *s = [NSString stringWithFormat:@"第%@名",guildModel.rank];
|
||||
NSMutableAttributedString *attr = [[NSMutableAttributedString alloc] initWithString:s];
|
||||
[attr yy_setColor:[UIColor colorWithHexString:@"#FF8ACC"] range:NSMakeRange(1, guildModel.rank.length)];
|
||||
self.rankResultLabel.attributedText = attr;
|
||||
}
|
||||
[self.headerImageView sd_setImageWithURL:[NSURL URLWithString:guildModel.cover] placeholderImage:[UIImage imageNamed:@"user_header_placehoulder"]];
|
||||
self.valueLabel.text = guildModel.total;
|
||||
NSString *diff = guildModel.diff;
|
||||
NSString *s1 = [NSString stringWithFormat:@"距离上一名差%@",guildModel.diff];
|
||||
NSMutableAttributedString *attr1 = [[NSMutableAttributedString alloc] initWithString:s1];
|
||||
[attr1 yy_setColor:[UIColor colorWithHexString:@"#FF8ACC"] range:NSMakeRange(6, diff.length)];
|
||||
self.needLabel.attributedText = attr1;
|
||||
}
|
||||
//
|
||||
-(void)setCpModel:(QXMyRankModel *)cpModel{
|
||||
_cpModel = cpModel;
|
||||
|
||||
if (cpModel.nickname1.length == 0 || cpModel== nil) {
|
||||
// self.allNickNameLabel.text = [NSString stringWithFormat:@"%@",cpModel.nickname];
|
||||
self.allNickNameLabel.text = [NSString stringWithFormat:@"%@",QXGlobal.shareGlobal.loginModel.nickname];
|
||||
[self.headerImageView1 sd_setImageWithURL:[NSURL URLWithString:QXGlobal.shareGlobal.loginModel.avatar] placeholderImage:[UIImage imageNamed:@"user_header_placehoulder"]];
|
||||
self.needLabel.text = @"-";
|
||||
}else{
|
||||
self.allNickNameLabel.text = [NSString stringWithFormat:@"%@\n%@",cpModel.nickname,cpModel.nickname1];
|
||||
[self.headerImageView1 sd_setImageWithURL:[NSURL URLWithString:cpModel.user_avatar] placeholderImage:[UIImage imageNamed:@"user_header_placehoulder"]];
|
||||
[self.headerImageView2 sd_setImageWithURL:[NSURL URLWithString:cpModel.user_avatar1] placeholderImage:[UIImage imageNamed:@"user_header_placehoulder"]];
|
||||
|
||||
NSString *diff = cpModel.diff;
|
||||
NSString *s1 = [NSString stringWithFormat:@"距离上一名差%@",cpModel.diff];
|
||||
NSMutableAttributedString *attr1 = [[NSMutableAttributedString alloc] initWithString:s1];
|
||||
[attr1 yy_setColor:[UIColor colorWithHexString:@"#FF8ACC"] range:NSMakeRange(6, diff.length)];
|
||||
self.needLabel.attributedText = attr1;
|
||||
}
|
||||
|
||||
|
||||
if (cpModel.rank.intValue <= 0) {
|
||||
self.rankResultLabel.text = @"暂未上榜";
|
||||
}else{
|
||||
NSString *s = [NSString stringWithFormat:@"第%@名",cpModel.rank];
|
||||
NSMutableAttributedString *attr = [[NSMutableAttributedString alloc] initWithString:s];
|
||||
[attr yy_setColor:[UIColor colorWithHexString:@"#FF8ACC"] range:NSMakeRange(1, cpModel.rank.length)];
|
||||
self.rankResultLabel.attributedText = attr;
|
||||
}
|
||||
|
||||
}
|
||||
-(void)layoutSubviews{
|
||||
[super layoutSubviews];
|
||||
self.frame = tmpRect;
|
||||
}
|
||||
/*
|
||||
// Only override drawRect: if you perform custom drawing.
|
||||
// An empty implementation adversely affects performance during animation.
|
||||
- (void)drawRect:(CGRect)rect {
|
||||
// Drawing code
|
||||
}
|
||||
*/
|
||||
|
||||
@end
|
||||
162
QXLive/HomePage(声播)/View/首页/排行榜/QXMyRankView.xib
Normal file
162
QXLive/HomePage(声播)/View/首页/排行榜/QXMyRankView.xib
Normal file
@@ -0,0 +1,162 @@
|
||||
<?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="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="QXMyRankView">
|
||||
<rect key="frame" x="0.0" y="0.0" width="408" height="60"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="my_rank_bg" translatesAutoresizingMaskIntoConstraints="NO" id="ePb-yj-J0N">
|
||||
<rect key="frame" x="16" y="0.0" width="376" height="60"/>
|
||||
</imageView>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="user_header_placehoulder" translatesAutoresizingMaskIntoConstraints="NO" id="vLt-zu-0Mv">
|
||||
<rect key="frame" x="56" y="12.666666666666664" width="35" height="35"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="35" id="9ZR-5q-S9k"/>
|
||||
<constraint firstAttribute="height" constant="35" id="f46-t6-Byz"/>
|
||||
</constraints>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
|
||||
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
|
||||
<real key="value" value="17.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="EWO-Iu-HUp">
|
||||
<rect key="frame" x="101" y="6.6666666666666679" width="51.666666666666657" height="16"/>
|
||||
<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="暂未上榜" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Uow-ZO-SrA">
|
||||
<rect key="frame" x="300.33333333333331" y="6.666666666666667" width="51.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="距离上榜差50" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="nlo-j2-wvh">
|
||||
<rect key="frame" x="269.66666666666669" y="36.333333333333336" width="82.333333333333314" 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>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="my_rank_value_bg" translatesAutoresizingMaskIntoConstraints="NO" id="Wyj-Op-wbc">
|
||||
<rect key="frame" x="101" y="35.666666666666664" width="80" height="17"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="80" id="0gn-CS-aaa"/>
|
||||
<constraint firstAttribute="height" constant="17" id="qwh-GR-5C6"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="JHc-0B-ehZ">
|
||||
<rect key="frame" x="121" y="33.666666666666664" width="50" height="17"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="17" id="9JK-sq-aEm"/>
|
||||
<constraint firstAttribute="width" relation="greaterThanOrEqual" constant="50" id="TGV-kn-GoQ"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="11"/>
|
||||
<color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<imageView hidden="YES" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="user_header_placehoulder" translatesAutoresizingMaskIntoConstraints="NO" id="gJ7-Yb-gZ2">
|
||||
<rect key="frame" x="56" y="15" width="30" height="30"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="30" id="EgB-Jp-opH"/>
|
||||
<constraint firstAttribute="width" constant="30" id="HzL-Mh-zxc"/>
|
||||
</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 hidden="YES" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="user_header_placehoulder" translatesAutoresizingMaskIntoConstraints="NO" id="HyS-dG-hw0">
|
||||
<rect key="frame" x="86" y="15" width="30" height="30"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="30" id="Z9M-Lo-cGv"/>
|
||||
<constraint firstAttribute="height" constant="30" id="mfF-fJ-KoI"/>
|
||||
</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 hidden="YES" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="my_real_love_bg" translatesAutoresizingMaskIntoConstraints="NO" id="EkQ-iX-tic">
|
||||
<rect key="frame" x="56" y="15" width="60" height="30"/>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
|
||||
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
|
||||
<integer key="value" value="15"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</imageView>
|
||||
<label hidden="YES" opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="我的昵称" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="fUo-Tv-Mau">
|
||||
<rect key="frame" x="126.00000000000001" y="22.333333333333332" width="51.666666666666671" height="15.666666666666668"/>
|
||||
<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>
|
||||
</subviews>
|
||||
<color key="backgroundColor" systemColor="systemBackgroundColor"/>
|
||||
<constraints>
|
||||
<constraint firstItem="vLt-zu-0Mv" firstAttribute="top" secondItem="EWO-Iu-HUp" secondAttribute="bottom" constant="-10" id="1NF-b5-nfv"/>
|
||||
<constraint firstAttribute="bottom" secondItem="ePb-yj-J0N" secondAttribute="bottom" id="2ez-kJ-oMa"/>
|
||||
<constraint firstItem="Wyj-Op-wbc" firstAttribute="leading" secondItem="vLt-zu-0Mv" secondAttribute="trailing" constant="10" id="5Bd-P6-sfC"/>
|
||||
<constraint firstItem="fUo-Tv-Mau" firstAttribute="centerY" secondItem="EkQ-iX-tic" secondAttribute="centerY" id="5Oq-oZ-Oxc"/>
|
||||
<constraint firstItem="gJ7-Yb-gZ2" firstAttribute="centerY" secondItem="EkQ-iX-tic" secondAttribute="centerY" id="7D0-2f-HJ3"/>
|
||||
<constraint firstAttribute="trailing" secondItem="ePb-yj-J0N" secondAttribute="trailing" constant="16" id="9lv-Pb-add"/>
|
||||
<constraint firstItem="ePb-yj-J0N" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" id="9qN-t8-IOK"/>
|
||||
<constraint firstItem="Uow-ZO-SrA" firstAttribute="trailing" secondItem="ePb-yj-J0N" secondAttribute="trailing" constant="-40" id="AZi-2y-FnI"/>
|
||||
<constraint firstItem="ePb-yj-J0N" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="16" id="Ecs-gP-sBp"/>
|
||||
<constraint firstItem="fUo-Tv-Mau" firstAttribute="leading" secondItem="EkQ-iX-tic" secondAttribute="trailing" constant="10" id="GGy-WQ-4Cv"/>
|
||||
<constraint firstItem="gJ7-Yb-gZ2" firstAttribute="leading" secondItem="EkQ-iX-tic" secondAttribute="leading" id="GRK-mL-cZO"/>
|
||||
<constraint firstItem="nlo-j2-wvh" firstAttribute="trailing" secondItem="Uow-ZO-SrA" secondAttribute="trailing" id="J8p-E3-fdD"/>
|
||||
<constraint firstItem="HyS-dG-hw0" firstAttribute="centerY" secondItem="EkQ-iX-tic" secondAttribute="centerY" id="LRG-fZ-XWX"/>
|
||||
<constraint firstItem="EWO-Iu-HUp" firstAttribute="leading" secondItem="vLt-zu-0Mv" secondAttribute="trailing" constant="10" id="MeF-57-8oP"/>
|
||||
<constraint firstItem="EkQ-iX-tic" firstAttribute="centerY" secondItem="ePb-yj-J0N" secondAttribute="centerY" id="MpR-7z-Dm1"/>
|
||||
<constraint firstItem="vLt-zu-0Mv" firstAttribute="leading" secondItem="ePb-yj-J0N" secondAttribute="leading" constant="40" id="QiJ-a5-bQ5"/>
|
||||
<constraint firstItem="Wyj-Op-wbc" firstAttribute="top" secondItem="vLt-zu-0Mv" secondAttribute="bottom" constant="-12" id="WiT-Ey-ySS"/>
|
||||
<constraint firstItem="JHc-0B-ehZ" firstAttribute="centerY" secondItem="Wyj-Op-wbc" secondAttribute="centerY" constant="-2" id="X1b-hB-RuL"/>
|
||||
<constraint firstItem="EkQ-iX-tic" firstAttribute="leading" secondItem="vLt-zu-0Mv" secondAttribute="leading" id="dnZ-Np-Wls"/>
|
||||
<constraint firstItem="nlo-j2-wvh" firstAttribute="centerY" secondItem="Wyj-Op-wbc" secondAttribute="centerY" id="fec-C6-XSj"/>
|
||||
<constraint firstItem="HyS-dG-hw0" firstAttribute="trailing" secondItem="EkQ-iX-tic" secondAttribute="trailing" id="h9A-UL-yEO"/>
|
||||
<constraint firstItem="JHc-0B-ehZ" firstAttribute="leading" secondItem="Wyj-Op-wbc" secondAttribute="trailing" constant="-60" id="ot7-bi-rID"/>
|
||||
<constraint firstItem="vLt-zu-0Mv" firstAttribute="centerY" secondItem="ePb-yj-J0N" secondAttribute="centerY" id="uGa-zk-S0C"/>
|
||||
<constraint firstItem="Uow-ZO-SrA" firstAttribute="centerY" secondItem="EWO-Iu-HUp" secondAttribute="centerY" id="vBz-ca-Ljt"/>
|
||||
</constraints>
|
||||
<freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
|
||||
<connections>
|
||||
<outlet property="allNickNameLabel" destination="fUo-Tv-Mau" id="GlN-lE-r94"/>
|
||||
<outlet property="headerImageView" destination="vLt-zu-0Mv" id="xJO-0N-aRk"/>
|
||||
<outlet property="headerImageView1" destination="gJ7-Yb-gZ2" id="npX-TO-x84"/>
|
||||
<outlet property="headerImageView2" destination="HyS-dG-hw0" id="564-gi-7YC"/>
|
||||
<outlet property="headerImageViewBG" destination="EkQ-iX-tic" id="QzQ-tu-Uo1"/>
|
||||
<outlet property="needLabel" destination="nlo-j2-wvh" id="xPu-8V-gxg"/>
|
||||
<outlet property="nickNameLabel" destination="EWO-Iu-HUp" id="Qgf-l4-BE4"/>
|
||||
<outlet property="rankResultLabel" destination="Uow-ZO-SrA" id="mWr-iL-94L"/>
|
||||
<outlet property="valueBGImageView" destination="Wyj-Op-wbc" id="gAJ-Fl-hIx"/>
|
||||
<outlet property="valueLabel" destination="JHc-0B-ehZ" id="NXA-0r-kSz"/>
|
||||
</connections>
|
||||
<point key="canvasLocation" x="54.961832061068698" y="8.4507042253521139"/>
|
||||
</view>
|
||||
</objects>
|
||||
<resources>
|
||||
<image name="my_rank_bg" width="343" height="62"/>
|
||||
<image name="my_rank_value_bg" width="43" height="17"/>
|
||||
<image name="my_real_love_bg" width="60" height="30"/>
|
||||
<image name="user_header_placehoulder" width="40" height="40"/>
|
||||
<systemColor name="systemBackgroundColor">
|
||||
<color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
</systemColor>
|
||||
</resources>
|
||||
</document>
|
||||
23
QXLive/HomePage(声播)/View/首页/排行榜/QXRankCPListCell.h
Normal file
23
QXLive/HomePage(声播)/View/首页/排行榜/QXRankCPListCell.h
Normal file
@@ -0,0 +1,23 @@
|
||||
//
|
||||
// QXRankCPListCell.h
|
||||
// IsLandVoice
|
||||
//
|
||||
// Created by 启星 on 2025/3/4.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
//#import "SRRankListResponse.h"
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface QXRankCPListCell : UITableViewCell
|
||||
@property (weak, nonatomic) IBOutlet UILabel *numberLabel;
|
||||
@property (weak, nonatomic) IBOutlet UIImageView *headerImageView1;
|
||||
@property (weak, nonatomic) IBOutlet UIImageView *headerImageView2;
|
||||
@property (weak, nonatomic) IBOutlet UILabel *valueLabel;
|
||||
@property (weak, nonatomic) IBOutlet UILabel *nameLabel;
|
||||
|
||||
//@property (nonatomic,strong)SRRankListResponseModel *model;
|
||||
+(instancetype)cellWithTableView:(UITableView *)tableView;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
38
QXLive/HomePage(声播)/View/首页/排行榜/QXRankCPListCell.m
Normal file
38
QXLive/HomePage(声播)/View/首页/排行榜/QXRankCPListCell.m
Normal file
@@ -0,0 +1,38 @@
|
||||
//
|
||||
// QXRankCPListCell.m
|
||||
// IsLandVoice
|
||||
//
|
||||
// Created by 启星 on 2025/3/4.
|
||||
//
|
||||
|
||||
#import "QXRankCPListCell.h"
|
||||
|
||||
@implementation QXRankCPListCell
|
||||
+(instancetype)cellWithTableView:(UITableView *)tableView{
|
||||
static NSString *cellId = @"QXRankCPListCell";
|
||||
QXRankCPListCell *cell = [tableView dequeueReusableCellWithIdentifier:cellId];
|
||||
if (!cell) {
|
||||
cell = [[NSBundle mainBundle] loadNibNamed:cellId owner:nil options:nil].lastObject;
|
||||
}
|
||||
return cell;
|
||||
}
|
||||
//-(void)setModel:(SRRankListResponseModel *)model{
|
||||
// _model = model;
|
||||
// [self.headerImageView1 sd_setImageWithURL:[NSURL URLWithString:model.head_picture1] placeholderImage:[UIImage imageNamed:@"user_header_placehoulder"]];
|
||||
// [self.headerImageView2 sd_setImageWithURL:[NSURL URLWithString:model.head_picture2] placeholderImage:[UIImage imageNamed:@"user_header_placehoulder"]];
|
||||
// self.nameLabel.text = [NSString stringWithFormat:@"%@\n%@",model.nickname1,model.nickname2];
|
||||
// self.valueLabel.text = model.number;
|
||||
// self.numberLabel.text = model.rank;
|
||||
//}
|
||||
- (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
|
||||
122
QXLive/HomePage(声播)/View/首页/排行榜/QXRankCPListCell.xib
Normal file
122
QXLive/HomePage(声播)/View/首页/排行榜/QXRankCPListCell.xib
Normal file
@@ -0,0 +1,122 @@
|
||||
<?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="default" indentationWidth="10" rowHeight="132" id="KGk-i7-Jjw" customClass="QXRankCPListCell">
|
||||
<rect key="frame" x="0.0" y="0.0" width="574" height="132"/>
|
||||
<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="574" height="132"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="BeV-U5-bqr">
|
||||
<rect key="frame" x="16" y="57.666666666666657" width="30" height="17"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="30" id="h6P-AH-kzH"/>
|
||||
</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>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="user_header_placehoulder" translatesAutoresizingMaskIntoConstraints="NO" id="8nl-Wf-Mmq">
|
||||
<rect key="frame" x="56" y="51" width="30" height="30"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="30" id="76g-jc-5fs"/>
|
||||
<constraint firstAttribute="height" constant="30" id="Q8C-ug-bGh"/>
|
||||
</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="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="user_header_placehoulder" translatesAutoresizingMaskIntoConstraints="NO" id="Tzo-q6-iXL">
|
||||
<rect key="frame" x="86" y="51" width="30" height="30"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="30" id="Xau-Zt-JhU"/>
|
||||
<constraint firstAttribute="width" constant="30" id="xJm-En-LYo"/>
|
||||
</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="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Group 7018" translatesAutoresizingMaskIntoConstraints="NO" id="gXN-qt-239">
|
||||
<rect key="frame" x="56" y="51" width="60" height="30"/>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
|
||||
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
|
||||
<integer key="value" value="15"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</imageView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="33" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="TlQ-z7-ShX">
|
||||
<rect key="frame" x="503" y="57.666666666666657" width="55" height="17"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="55" id="sNf-Qe-nxg"/>
|
||||
</constraints>
|
||||
<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>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Vector" translatesAutoresizingMaskIntoConstraints="NO" id="BVp-92-65o">
|
||||
<rect key="frame" x="473" y="56" width="20" height="20"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="20" id="Bp3-AN-p7l"/>
|
||||
<constraint firstAttribute="height" constant="20" id="g7q-UD-YrY"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="zuj-eZ-aW5">
|
||||
<rect key="frame" x="132" y="57.666666666666657" width="200" height="17"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="200" id="qsT-0P-Czq"/>
|
||||
</constraints>
|
||||
<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>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstItem="BeV-U5-bqr" firstAttribute="centerY" secondItem="H2p-sc-9uM" secondAttribute="centerY" id="4M3-5B-OAx"/>
|
||||
<constraint firstItem="TlQ-z7-ShX" firstAttribute="centerY" secondItem="H2p-sc-9uM" secondAttribute="centerY" id="BD1-yo-zhe"/>
|
||||
<constraint firstItem="8nl-Wf-Mmq" firstAttribute="centerY" secondItem="gXN-qt-239" secondAttribute="centerY" id="Ckp-yY-L3M"/>
|
||||
<constraint firstAttribute="trailing" secondItem="TlQ-z7-ShX" secondAttribute="trailing" constant="16" id="FXb-rb-XhL"/>
|
||||
<constraint firstItem="BVp-92-65o" firstAttribute="centerY" secondItem="H2p-sc-9uM" secondAttribute="centerY" id="JYH-MG-9z5"/>
|
||||
<constraint firstItem="zuj-eZ-aW5" firstAttribute="centerY" secondItem="H2p-sc-9uM" secondAttribute="centerY" id="Qu6-8Y-86z"/>
|
||||
<constraint firstItem="gXN-qt-239" firstAttribute="centerY" secondItem="H2p-sc-9uM" secondAttribute="centerY" id="WLC-cw-VZE"/>
|
||||
<constraint firstItem="BeV-U5-bqr" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="16" id="aU8-C2-YB9"/>
|
||||
<constraint firstItem="gXN-qt-239" firstAttribute="leading" secondItem="BeV-U5-bqr" secondAttribute="trailing" constant="10" id="brH-hr-L3t"/>
|
||||
<constraint firstItem="Tzo-q6-iXL" firstAttribute="centerY" secondItem="gXN-qt-239" secondAttribute="centerY" id="h5Q-tj-sbt"/>
|
||||
<constraint firstItem="zuj-eZ-aW5" firstAttribute="leading" secondItem="Tzo-q6-iXL" secondAttribute="trailing" constant="16" id="j7g-oT-suR"/>
|
||||
<constraint firstItem="8nl-Wf-Mmq" firstAttribute="leading" secondItem="gXN-qt-239" secondAttribute="leading" id="jSg-tu-5dg"/>
|
||||
<constraint firstItem="Tzo-q6-iXL" firstAttribute="trailing" secondItem="gXN-qt-239" secondAttribute="trailing" id="oK3-Qu-IPm"/>
|
||||
<constraint firstItem="TlQ-z7-ShX" firstAttribute="leading" secondItem="BVp-92-65o" secondAttribute="trailing" constant="10" id="uB6-WK-EBJ"/>
|
||||
</constraints>
|
||||
</tableViewCellContentView>
|
||||
<viewLayoutGuide key="safeArea" id="aW0-zy-SZf"/>
|
||||
<connections>
|
||||
<outlet property="headerImageView1" destination="8nl-Wf-Mmq" id="PFH-Lb-GOZ"/>
|
||||
<outlet property="headerImageView2" destination="Tzo-q6-iXL" id="3Rl-Ah-vhL"/>
|
||||
<outlet property="nameLabel" destination="zuj-eZ-aW5" id="hWV-Rr-alr"/>
|
||||
<outlet property="numberLabel" destination="BeV-U5-bqr" id="xWa-Tn-RmZ"/>
|
||||
<outlet property="valueLabel" destination="TlQ-z7-ShX" id="iHB-8v-hLR"/>
|
||||
</connections>
|
||||
<point key="canvasLocation" x="332.82442748091603" y="50.70422535211268"/>
|
||||
</tableViewCell>
|
||||
</objects>
|
||||
<resources>
|
||||
<image name="Group 7018" width="60" height="30"/>
|
||||
<image name="Vector" width="14" height="14"/>
|
||||
<image name="user_header_placehoulder" width="128" height="128"/>
|
||||
</resources>
|
||||
</document>
|
||||
34
QXLive/HomePage(声播)/View/首页/排行榜/QXRankCPTopThreeView.h
Normal file
34
QXLive/HomePage(声播)/View/首页/排行榜/QXRankCPTopThreeView.h
Normal file
@@ -0,0 +1,34 @@
|
||||
//
|
||||
// QXRankCPTopThreeView.h
|
||||
// IsLandVoice
|
||||
//
|
||||
// Created by 启星 on 2025/3/4.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import "QXRankModel.h"
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface QXRankCPTopThreeView : UIView
|
||||
@property (weak, nonatomic) IBOutlet UIImageView *firstHeaderImage;
|
||||
@property (weak, nonatomic) IBOutlet UIImageView *firstHeaderImage2;
|
||||
@property (weak, nonatomic) IBOutlet UILabel *firstNameLabel;
|
||||
@property (weak, nonatomic) IBOutlet UILabel *firstIDLabel;
|
||||
@property (weak, nonatomic) IBOutlet UILabel *firstRankValueLabel;
|
||||
|
||||
@property (weak, nonatomic) IBOutlet UIImageView *secondHeaderImage;
|
||||
@property (weak, nonatomic) IBOutlet UIImageView *secondHeaderImage2;
|
||||
@property (weak, nonatomic) IBOutlet UILabel *secondNameLabel;
|
||||
@property (weak, nonatomic) IBOutlet UILabel *secondIDLabel;
|
||||
@property (weak, nonatomic) IBOutlet UILabel *secondRankValueLabel;
|
||||
|
||||
@property (weak, nonatomic) IBOutlet UIImageView *thirdHeaderImage;
|
||||
@property (weak, nonatomic) IBOutlet UIImageView *thirdHeaderImage2;
|
||||
@property (weak, nonatomic) IBOutlet UILabel *thirdNameLabel;
|
||||
@property (weak, nonatomic) IBOutlet UILabel *thirdIDLabel;
|
||||
@property (weak, nonatomic) IBOutlet UILabel *thirdRankValueLabel;
|
||||
-(void)resetView;
|
||||
@property (nonatomic,strong)NSArray<QXMyRankModel*>*list;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
78
QXLive/HomePage(声播)/View/首页/排行榜/QXRankCPTopThreeView.m
Normal file
78
QXLive/HomePage(声播)/View/首页/排行榜/QXRankCPTopThreeView.m
Normal file
@@ -0,0 +1,78 @@
|
||||
//
|
||||
// QXRankCPTopThreeView.m
|
||||
// IsLandVoice
|
||||
//
|
||||
// Created by 启星 on 2025/3/4.
|
||||
//
|
||||
|
||||
#import "QXRankCPTopThreeView.h"
|
||||
|
||||
@implementation QXRankCPTopThreeView
|
||||
|
||||
- (instancetype)initWithFrame:(CGRect)frame
|
||||
{
|
||||
self = [super initWithFrame:frame];
|
||||
if (self) {
|
||||
self = [[[NSBundle mainBundle]loadNibNamed:@"QXRankCPTopThreeView" owner:nil options:nil] lastObject];
|
||||
self.frame = frame;
|
||||
}
|
||||
return self;
|
||||
}
|
||||
-(void)resetView{
|
||||
self.firstHeaderImage.image = [UIImage imageNamed:@"user_header_placehoulder"];
|
||||
self.firstHeaderImage2.image = [UIImage imageNamed:@"user_header_placehoulder"];
|
||||
self.secondHeaderImage.image = [UIImage imageNamed:@"user_header_placehoulder"];
|
||||
self.secondHeaderImage2.image = [UIImage imageNamed:@"user_header_placehoulder"];
|
||||
self.thirdHeaderImage.image = [UIImage imageNamed:@"user_header_placehoulder"];
|
||||
self.secondHeaderImage2.image = [UIImage imageNamed:@"user_header_placehoulder"];
|
||||
self.firstNameLabel.text = @"虚位以待";
|
||||
self.secondNameLabel.text = @"虚位以待";
|
||||
self.thirdNameLabel.text = @"虚位以待";
|
||||
self.firstIDLabel.text = @"虚位以待";
|
||||
self.secondIDLabel.text = @"虚位以待";
|
||||
self.thirdIDLabel.text = @"虚位以待";
|
||||
}
|
||||
|
||||
-(void)setList:(NSArray<QXMyRankModel *> *)list{
|
||||
QXMyRankModel *firstModel;
|
||||
QXMyRankModel *secondModel;
|
||||
QXMyRankModel *thirdModel;
|
||||
if (list.count >= 3) {
|
||||
firstModel = list[0];
|
||||
secondModel = list[1];
|
||||
thirdModel = list[2];
|
||||
}
|
||||
if (list.count == 2) {
|
||||
firstModel = list[0];
|
||||
secondModel = list[1];
|
||||
}
|
||||
if (list.count == 1) {
|
||||
firstModel = list[0];
|
||||
}
|
||||
|
||||
if (firstModel) {
|
||||
[self.firstHeaderImage sd_setImageWithURL:[NSURL URLWithString:firstModel.user_avatar] placeholderImage:[UIImage imageNamed:@"user_header_placehoulder"]];
|
||||
[self.firstHeaderImage2 sd_setImageWithURL:[NSURL URLWithString:firstModel.user_avatar1] placeholderImage:[UIImage imageNamed:@"user_header_placehoulder"]];
|
||||
self.firstNameLabel.text = firstModel.nickname;
|
||||
self.firstIDLabel.text = firstModel.nickname1;
|
||||
self.firstRankValueLabel.text = firstModel.total;
|
||||
}
|
||||
|
||||
if (secondModel) {
|
||||
[self.secondHeaderImage sd_setImageWithURL:[NSURL URLWithString:secondModel.user_avatar] placeholderImage:[UIImage imageNamed:@"user_header_placehoulder"]];
|
||||
[self.secondHeaderImage2 sd_setImageWithURL:[NSURL URLWithString:secondModel.user_avatar1] placeholderImage:[UIImage imageNamed:@"user_header_placehoulder"]];
|
||||
self.secondNameLabel.text = secondModel.nickname;
|
||||
self.secondIDLabel.text = secondModel.nickname1;
|
||||
self.secondRankValueLabel.text = secondModel.total;
|
||||
}
|
||||
|
||||
if (thirdModel) {
|
||||
[self.thirdHeaderImage sd_setImageWithURL:[NSURL URLWithString:thirdModel.user_avatar] placeholderImage:[UIImage imageNamed:@"user_header_placehoulder"]];
|
||||
[self.thirdHeaderImage2 sd_setImageWithURL:[NSURL URLWithString:thirdModel.user_avatar1] placeholderImage:[UIImage imageNamed:@"user_header_placehoulder"]];
|
||||
self.thirdNameLabel.text = thirdModel.nickname;
|
||||
self.thirdIDLabel.text = thirdModel.nickname1;
|
||||
self.thirdRankValueLabel.text = thirdModel.total;
|
||||
}
|
||||
}
|
||||
|
||||
@end
|
||||
380
QXLive/HomePage(声播)/View/首页/排行榜/QXRankCPTopThreeView.xib
Normal file
380
QXLive/HomePage(声播)/View/首页/排行榜/QXRankCPTopThreeView.xib
Normal file
@@ -0,0 +1,380 @@
|
||||
<?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"/>
|
||||
<view contentMode="scaleToFill" id="WH3-Kj-tPl" userLabel="RankCP Top Three View" customClass="QXRankCPTopThreeView">
|
||||
<rect key="frame" x="0.0" y="0.0" width="438" height="230"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="fkt-5i-wGo">
|
||||
<rect key="frame" x="16.000000000000007" y="30" width="126.66666666666669" height="190"/>
|
||||
<subviews>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="rank_second_bg" translatesAutoresizingMaskIntoConstraints="NO" id="Iug-6G-0qC">
|
||||
<rect key="frame" x="0.0" y="30" width="126.66666666666667" height="150"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="150" id="gQo-o1-sqd"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="user_header_placehoulder" translatesAutoresizingMaskIntoConstraints="NO" id="TYB-N3-5Cs">
|
||||
<rect key="frame" x="15.333333333333329" y="12.666666666666664" width="45" height="45"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="45" id="VXe-ml-VYq"/>
|
||||
<constraint firstAttribute="width" constant="45" id="rjf-AN-Hla"/>
|
||||
</constraints>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
|
||||
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
|
||||
<real key="value" value="22.5"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</imageView>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="user_header_placehoulder" translatesAutoresizingMaskIntoConstraints="NO" id="Uue-tQ-gRt">
|
||||
<rect key="frame" x="66.333333333333329" y="12.666666666666664" width="45" height="45"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="45" id="G4Y-CK-nNz"/>
|
||||
<constraint firstAttribute="height" constant="45" id="Nlc-TP-CLE"/>
|
||||
</constraints>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
|
||||
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
|
||||
<real key="value" value="22.5"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</imageView>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="rank_real_love_second_header" translatesAutoresizingMaskIntoConstraints="NO" id="Bcx-vW-3yy">
|
||||
<rect key="frame" x="8.3333333333333286" y="0.0" width="110" height="70"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="70" id="A1C-5f-uA2"/>
|
||||
<constraint firstAttribute="width" constant="110" id="iXo-3I-ff5"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="TOP 2" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="K2f-Fr-81A">
|
||||
<rect key="frame" x="0.0" y="75" width="126.66666666666667" height="25"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="25" id="hB1-Ix-7ZD"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" type="system" weight="heavy" pointSize="17"/>
|
||||
<color key="textColor" red="0.27058823529999998" green="0.52549019610000003" blue="0.86666666670000003" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<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="ckM-s4-iVh">
|
||||
<rect key="frame" x="0.0" y="102" width="126.66666666666667" 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="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="JgV-Ob-RU0">
|
||||
<rect key="frame" x="0.0" y="122" width="126.66666666666667" 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>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="rank_real_love_value_bg" translatesAutoresizingMaskIntoConstraints="NO" id="Ub0-eH-9eE">
|
||||
<rect key="frame" x="21" y="150" width="85" height="20"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="20" id="XvT-C9-MnK"/>
|
||||
<constraint firstAttribute="width" constant="85" id="n7G-4G-8KW"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="hGy-Aa-hUg">
|
||||
<rect key="frame" x="41" y="149.66666666666666" width="60" height="21"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="21" id="7YG-gw-rwJ"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="12"/>
|
||||
<color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstItem="JgV-Ob-RU0" firstAttribute="trailing" secondItem="Iug-6G-0qC" secondAttribute="trailing" id="1Og-TM-wT2"/>
|
||||
<constraint firstItem="ckM-s4-iVh" firstAttribute="trailing" secondItem="Iug-6G-0qC" secondAttribute="trailing" id="4Sx-mg-E3i"/>
|
||||
<constraint firstAttribute="height" constant="190" id="ABA-Y3-oCb"/>
|
||||
<constraint firstItem="hGy-Aa-hUg" firstAttribute="leading" secondItem="Ub0-eH-9eE" secondAttribute="leading" constant="20" id="CR1-VP-mLr"/>
|
||||
<constraint firstItem="K2f-Fr-81A" firstAttribute="trailing" secondItem="Iug-6G-0qC" secondAttribute="trailing" id="GUo-Kg-Ugg"/>
|
||||
<constraint firstItem="Bcx-vW-3yy" firstAttribute="top" secondItem="Iug-6G-0qC" secondAttribute="top" constant="-30" id="K3K-I7-Mse"/>
|
||||
<constraint firstItem="K2f-Fr-81A" firstAttribute="top" secondItem="Bcx-vW-3yy" secondAttribute="bottom" constant="5" id="OOK-uW-dSc"/>
|
||||
<constraint firstItem="ckM-s4-iVh" firstAttribute="top" secondItem="K2f-Fr-81A" secondAttribute="bottom" constant="2" id="UWZ-MX-AEP"/>
|
||||
<constraint firstItem="Uue-tQ-gRt" firstAttribute="centerY" secondItem="Bcx-vW-3yy" secondAttribute="centerY" id="XSK-F2-qmZ"/>
|
||||
<constraint firstItem="hGy-Aa-hUg" firstAttribute="trailing" secondItem="Ub0-eH-9eE" secondAttribute="trailing" constant="-5" id="XYd-S9-Ss1"/>
|
||||
<constraint firstItem="K2f-Fr-81A" firstAttribute="leading" secondItem="Iug-6G-0qC" secondAttribute="leading" id="dJB-al-53x"/>
|
||||
<constraint firstItem="JgV-Ob-RU0" firstAttribute="top" secondItem="ckM-s4-iVh" secondAttribute="bottom" constant="3" id="eQc-Lv-ulO"/>
|
||||
<constraint firstItem="Bcx-vW-3yy" firstAttribute="centerX" secondItem="Iug-6G-0qC" secondAttribute="centerX" id="faz-Hl-edq"/>
|
||||
<constraint firstItem="ckM-s4-iVh" firstAttribute="leading" secondItem="Iug-6G-0qC" secondAttribute="leading" id="gX7-PV-ozC"/>
|
||||
<constraint firstItem="TYB-N3-5Cs" firstAttribute="centerY" secondItem="Bcx-vW-3yy" secondAttribute="centerY" id="hkb-ID-ZKF"/>
|
||||
<constraint firstItem="Ub0-eH-9eE" firstAttribute="centerX" secondItem="Iug-6G-0qC" secondAttribute="centerX" id="iUQ-2w-Hfa"/>
|
||||
<constraint firstItem="Ub0-eH-9eE" firstAttribute="bottom" secondItem="Iug-6G-0qC" secondAttribute="bottom" constant="-10" id="k6x-oF-iTh"/>
|
||||
<constraint firstItem="JgV-Ob-RU0" firstAttribute="leading" secondItem="Iug-6G-0qC" secondAttribute="leading" id="kKd-6b-cDc"/>
|
||||
<constraint firstItem="TYB-N3-5Cs" firstAttribute="leading" secondItem="Bcx-vW-3yy" secondAttribute="leading" constant="7" id="kwC-r0-riC"/>
|
||||
<constraint firstAttribute="trailing" secondItem="Iug-6G-0qC" secondAttribute="trailing" id="l0a-kH-9cz"/>
|
||||
<constraint firstAttribute="bottom" secondItem="Iug-6G-0qC" secondAttribute="bottom" constant="10" id="ln3-d3-UhK"/>
|
||||
<constraint firstItem="Uue-tQ-gRt" firstAttribute="trailing" secondItem="Bcx-vW-3yy" secondAttribute="trailing" constant="-7" id="sxx-Qn-Ueb"/>
|
||||
<constraint firstItem="hGy-Aa-hUg" firstAttribute="centerY" secondItem="Ub0-eH-9eE" secondAttribute="centerY" id="txo-0u-d1T"/>
|
||||
<constraint firstItem="Iug-6G-0qC" firstAttribute="leading" secondItem="fkt-5i-wGo" secondAttribute="leading" id="wQu-oQ-weZ"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="9kQ-2p-WMi">
|
||||
<rect key="frame" x="155.66666666666666" y="10" width="126.66666666666666" height="190"/>
|
||||
<subviews>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="rank_first_bg" translatesAutoresizingMaskIntoConstraints="NO" id="ELT-qa-QKO">
|
||||
<rect key="frame" x="0.0" y="30" width="126.66666666666667" height="150"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="150" id="YhW-oT-Z6e"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="user_header_placehoulder" translatesAutoresizingMaskIntoConstraints="NO" id="aGF-cs-ovJ">
|
||||
<rect key="frame" x="15.333333333333343" y="12.666666666666671" width="45" height="45"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="45" id="8ni-RR-NlK"/>
|
||||
<constraint firstAttribute="width" constant="45" id="GMo-sX-7vO"/>
|
||||
</constraints>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
|
||||
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
|
||||
<real key="value" value="22.5"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</imageView>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="user_header_placehoulder" translatesAutoresizingMaskIntoConstraints="NO" id="hOp-Tb-y2w">
|
||||
<rect key="frame" x="66.333333333333343" y="12.666666666666671" width="45" height="45"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="45" id="DOF-IB-M0H"/>
|
||||
<constraint firstAttribute="width" constant="45" id="lVk-tl-f4v"/>
|
||||
</constraints>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
|
||||
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
|
||||
<real key="value" value="22.5"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</imageView>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="rank_real_love_first_header" translatesAutoresizingMaskIntoConstraints="NO" id="TNm-GF-bzb">
|
||||
<rect key="frame" x="8.3333333333333428" y="0.0" width="110" height="70"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="110" id="lhO-rb-C9j"/>
|
||||
<constraint firstAttribute="height" constant="70" id="nVg-Kn-hbw"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="TOP 1" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="nkC-Y0-Yh2">
|
||||
<rect key="frame" x="0.0" y="75" width="126.66666666666667" height="25"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="25" id="bMg-wC-0ft"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" type="system" weight="heavy" pointSize="17"/>
|
||||
<color key="textColor" red="0.84313725490000002" green="0.30196078430000001" blue="0.17254901959999999" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<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="Tww-5a-ZSt">
|
||||
<rect key="frame" x="0.0" y="102" width="126.66666666666667" 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="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Is5-JJ-W6T">
|
||||
<rect key="frame" x="0.0" y="122" width="126.66666666666667" 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>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="rank_real_love_value_bg" translatesAutoresizingMaskIntoConstraints="NO" id="PqR-bx-jVl">
|
||||
<rect key="frame" x="21" y="150" width="85" height="20"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="85" id="hg1-6a-sS7"/>
|
||||
<constraint firstAttribute="height" constant="20" id="zlM-wn-im8"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Z7f-CG-uOk">
|
||||
<rect key="frame" x="41" y="149.66666666666666" width="60" height="21"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="21" id="zIF-Xs-nJZ"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="12"/>
|
||||
<color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstItem="TNm-GF-bzb" firstAttribute="centerX" secondItem="ELT-qa-QKO" secondAttribute="centerX" id="3lA-4h-ICt"/>
|
||||
<constraint firstItem="Tww-5a-ZSt" firstAttribute="leading" secondItem="ELT-qa-QKO" secondAttribute="leading" id="9SJ-zE-Zof"/>
|
||||
<constraint firstItem="Z7f-CG-uOk" firstAttribute="centerY" secondItem="PqR-bx-jVl" secondAttribute="centerY" id="9hN-IO-phN"/>
|
||||
<constraint firstItem="TNm-GF-bzb" firstAttribute="top" secondItem="ELT-qa-QKO" secondAttribute="top" constant="-30" id="BMQ-CI-bxW"/>
|
||||
<constraint firstItem="nkC-Y0-Yh2" firstAttribute="top" secondItem="TNm-GF-bzb" secondAttribute="bottom" constant="5" id="CWj-Yb-D1a"/>
|
||||
<constraint firstAttribute="trailing" secondItem="ELT-qa-QKO" secondAttribute="trailing" id="Cog-Qb-Mox"/>
|
||||
<constraint firstItem="nkC-Y0-Yh2" firstAttribute="leading" secondItem="ELT-qa-QKO" secondAttribute="leading" id="Ex4-aF-JNz"/>
|
||||
<constraint firstItem="Is5-JJ-W6T" firstAttribute="top" secondItem="Tww-5a-ZSt" secondAttribute="bottom" constant="3" id="FOy-cZ-MXS"/>
|
||||
<constraint firstItem="Z7f-CG-uOk" firstAttribute="leading" secondItem="PqR-bx-jVl" secondAttribute="leading" constant="20" id="NvH-oE-6jV"/>
|
||||
<constraint firstItem="aGF-cs-ovJ" firstAttribute="centerY" secondItem="TNm-GF-bzb" secondAttribute="centerY" id="OCy-jI-csN"/>
|
||||
<constraint firstAttribute="height" constant="190" id="QOM-MI-gTQ"/>
|
||||
<constraint firstItem="Is5-JJ-W6T" firstAttribute="leading" secondItem="ELT-qa-QKO" secondAttribute="leading" id="Rho-aP-c0C"/>
|
||||
<constraint firstItem="Is5-JJ-W6T" firstAttribute="trailing" secondItem="ELT-qa-QKO" secondAttribute="trailing" id="Rnf-8P-Z4u"/>
|
||||
<constraint firstItem="hOp-Tb-y2w" firstAttribute="centerY" secondItem="TNm-GF-bzb" secondAttribute="centerY" id="TGJ-LC-B46"/>
|
||||
<constraint firstAttribute="bottom" secondItem="ELT-qa-QKO" secondAttribute="bottom" constant="10" id="UIG-Xk-5Qi"/>
|
||||
<constraint firstItem="hOp-Tb-y2w" firstAttribute="trailing" secondItem="TNm-GF-bzb" secondAttribute="trailing" constant="-7" id="UYt-7H-9zM"/>
|
||||
<constraint firstItem="Tww-5a-ZSt" firstAttribute="trailing" secondItem="ELT-qa-QKO" secondAttribute="trailing" id="Zhi-MT-iil"/>
|
||||
<constraint firstItem="ELT-qa-QKO" firstAttribute="leading" secondItem="9kQ-2p-WMi" secondAttribute="leading" id="bJd-Y2-qtw"/>
|
||||
<constraint firstItem="PqR-bx-jVl" firstAttribute="bottom" secondItem="ELT-qa-QKO" secondAttribute="bottom" constant="-10" id="ntf-em-pv2"/>
|
||||
<constraint firstItem="Tww-5a-ZSt" firstAttribute="top" secondItem="nkC-Y0-Yh2" secondAttribute="bottom" constant="2" id="r1Q-uw-MqZ"/>
|
||||
<constraint firstItem="aGF-cs-ovJ" firstAttribute="leading" secondItem="TNm-GF-bzb" secondAttribute="leading" constant="7" id="sv8-uW-tJM"/>
|
||||
<constraint firstItem="nkC-Y0-Yh2" firstAttribute="trailing" secondItem="ELT-qa-QKO" secondAttribute="trailing" id="vH7-h0-pFA"/>
|
||||
<constraint firstItem="Z7f-CG-uOk" firstAttribute="trailing" secondItem="PqR-bx-jVl" secondAttribute="trailing" constant="-5" id="vk5-8p-bCe"/>
|
||||
<constraint firstItem="PqR-bx-jVl" firstAttribute="centerX" secondItem="ELT-qa-QKO" secondAttribute="centerX" id="wQI-7G-gMv"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="W20-Fx-QTq">
|
||||
<rect key="frame" x="295.33333333333331" y="30" width="126.66666666666669" height="190"/>
|
||||
<subviews>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="rank_third_bg" translatesAutoresizingMaskIntoConstraints="NO" id="Nxb-5v-S7f">
|
||||
<rect key="frame" x="0.0" y="30" width="126.66666666666667" height="150"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="150" id="2f8-Mc-yvp"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="user_header_placehoulder" translatesAutoresizingMaskIntoConstraints="NO" id="oRz-z8-zG5">
|
||||
<rect key="frame" x="15.333333333333371" y="12.666666666666664" width="45" height="45"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="45" id="9a8-Ar-pKG"/>
|
||||
<constraint firstAttribute="height" constant="45" id="DTn-rb-qVy"/>
|
||||
</constraints>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
|
||||
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
|
||||
<real key="value" value="22.5"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</imageView>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="user_header_placehoulder" translatesAutoresizingMaskIntoConstraints="NO" id="jh5-rY-O8T">
|
||||
<rect key="frame" x="66.333333333333371" y="12.666666666666664" width="45" height="45"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="45" id="MyX-to-3tp"/>
|
||||
<constraint firstAttribute="width" constant="45" id="mKt-rL-jxv"/>
|
||||
</constraints>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
|
||||
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
|
||||
<real key="value" value="22.5"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</imageView>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="rank_real_love_third_header" translatesAutoresizingMaskIntoConstraints="NO" id="ldL-jE-OCW">
|
||||
<rect key="frame" x="8.3333333333333712" y="0.0" width="110" height="70"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="110" id="ABy-co-Dux"/>
|
||||
<constraint firstAttribute="height" constant="70" id="f9k-Tq-EBl"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="TOP 3" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="pyq-Of-sab">
|
||||
<rect key="frame" x="0.0" y="75" width="126.66666666666667" height="25"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="25" id="rKG-1s-DvO"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" type="system" weight="heavy" pointSize="17"/>
|
||||
<color key="textColor" red="0.89019607840000003" green="0.56475246349999997" blue="0.27059417520000001" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<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="LeW-ad-gVJ">
|
||||
<rect key="frame" x="0.0" y="102" width="126.66666666666667" 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="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="pwN-H0-3qj">
|
||||
<rect key="frame" x="0.0" y="122" width="126.66666666666667" 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>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="rank_real_love_value_bg" translatesAutoresizingMaskIntoConstraints="NO" id="yOy-fE-ehe">
|
||||
<rect key="frame" x="21" y="150" width="85" height="20"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="85" id="8zE-Ah-uVf"/>
|
||||
<constraint firstAttribute="height" constant="20" id="val-a1-2fa"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="6bp-EP-4mI">
|
||||
<rect key="frame" x="41" y="149.66666666666666" width="60" height="21"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="21" id="KAx-jQ-OIw"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="12"/>
|
||||
<color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstAttribute="bottom" secondItem="Nxb-5v-S7f" secondAttribute="bottom" constant="10" id="1KP-S0-L4F"/>
|
||||
<constraint firstItem="pyq-Of-sab" firstAttribute="leading" secondItem="Nxb-5v-S7f" secondAttribute="leading" id="484-d3-FPb"/>
|
||||
<constraint firstItem="oRz-z8-zG5" firstAttribute="centerY" secondItem="ldL-jE-OCW" secondAttribute="centerY" id="4vl-6S-cPy"/>
|
||||
<constraint firstItem="pwN-H0-3qj" firstAttribute="top" secondItem="LeW-ad-gVJ" secondAttribute="bottom" constant="3" id="7q3-5c-5vz"/>
|
||||
<constraint firstItem="jh5-rY-O8T" firstAttribute="centerY" secondItem="ldL-jE-OCW" secondAttribute="centerY" id="9JG-sK-Gp2"/>
|
||||
<constraint firstItem="pyq-Of-sab" firstAttribute="top" secondItem="ldL-jE-OCW" secondAttribute="bottom" constant="5" id="DNp-zR-glt"/>
|
||||
<constraint firstItem="jh5-rY-O8T" firstAttribute="trailing" secondItem="ldL-jE-OCW" secondAttribute="trailing" constant="-7" id="EOt-kV-qy1"/>
|
||||
<constraint firstAttribute="height" constant="190" id="GGW-5y-iuq"/>
|
||||
<constraint firstItem="yOy-fE-ehe" firstAttribute="bottom" secondItem="Nxb-5v-S7f" secondAttribute="bottom" constant="-10" id="MLx-IV-G4l"/>
|
||||
<constraint firstItem="6bp-EP-4mI" firstAttribute="leading" secondItem="yOy-fE-ehe" secondAttribute="leading" constant="20" id="PU3-oT-9KE"/>
|
||||
<constraint firstItem="pyq-Of-sab" firstAttribute="trailing" secondItem="Nxb-5v-S7f" secondAttribute="trailing" id="R0k-da-muF"/>
|
||||
<constraint firstItem="LeW-ad-gVJ" firstAttribute="top" secondItem="pyq-Of-sab" secondAttribute="bottom" constant="2" id="SFL-YD-CpX"/>
|
||||
<constraint firstItem="pwN-H0-3qj" firstAttribute="leading" secondItem="Nxb-5v-S7f" secondAttribute="leading" id="U1I-lz-flo"/>
|
||||
<constraint firstItem="oRz-z8-zG5" firstAttribute="leading" secondItem="ldL-jE-OCW" secondAttribute="leading" constant="7" id="cyQ-pI-l0S"/>
|
||||
<constraint firstItem="yOy-fE-ehe" firstAttribute="centerX" secondItem="Nxb-5v-S7f" secondAttribute="centerX" id="hmo-Bu-sHj"/>
|
||||
<constraint firstItem="6bp-EP-4mI" firstAttribute="centerY" secondItem="yOy-fE-ehe" secondAttribute="centerY" id="hsN-tf-ucA"/>
|
||||
<constraint firstAttribute="trailing" secondItem="Nxb-5v-S7f" secondAttribute="trailing" id="jtd-FL-IPM"/>
|
||||
<constraint firstItem="Nxb-5v-S7f" firstAttribute="leading" secondItem="W20-Fx-QTq" secondAttribute="leading" id="mH0-V2-F3V"/>
|
||||
<constraint firstItem="LeW-ad-gVJ" firstAttribute="trailing" secondItem="Nxb-5v-S7f" secondAttribute="trailing" id="mxp-8w-d3f"/>
|
||||
<constraint firstItem="pwN-H0-3qj" firstAttribute="trailing" secondItem="Nxb-5v-S7f" secondAttribute="trailing" id="uIJ-vM-5eW"/>
|
||||
<constraint firstItem="LeW-ad-gVJ" firstAttribute="leading" secondItem="Nxb-5v-S7f" secondAttribute="leading" id="yUf-WR-TSj"/>
|
||||
<constraint firstItem="6bp-EP-4mI" firstAttribute="trailing" secondItem="yOy-fE-ehe" secondAttribute="trailing" constant="-5" id="zC7-5f-4x4"/>
|
||||
<constraint firstItem="ldL-jE-OCW" firstAttribute="centerX" secondItem="Nxb-5v-S7f" secondAttribute="centerX" id="zTv-YA-C7R"/>
|
||||
<constraint firstItem="ldL-jE-OCW" firstAttribute="top" secondItem="Nxb-5v-S7f" secondAttribute="top" constant="-30" id="zcc-er-wj1"/>
|
||||
</constraints>
|
||||
</view>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstItem="W20-Fx-QTq" firstAttribute="leading" secondItem="9kQ-2p-WMi" secondAttribute="trailing" constant="13" id="7zU-5T-Tpm"/>
|
||||
<constraint firstItem="W20-Fx-QTq" firstAttribute="top" secondItem="9kQ-2p-WMi" secondAttribute="top" constant="20" id="8su-Hz-Uh8"/>
|
||||
<constraint firstAttribute="trailing" secondItem="W20-Fx-QTq" secondAttribute="trailing" constant="16" id="9Pb-9f-b52"/>
|
||||
<constraint firstItem="W20-Fx-QTq" firstAttribute="width" secondItem="fkt-5i-wGo" secondAttribute="width" id="9oW-f3-lh3"/>
|
||||
<constraint firstItem="9kQ-2p-WMi" firstAttribute="leading" secondItem="fkt-5i-wGo" secondAttribute="trailing" constant="13" id="VDO-dN-V30"/>
|
||||
<constraint firstItem="fkt-5i-wGo" firstAttribute="leading" secondItem="WH3-Kj-tPl" secondAttribute="leading" constant="16" id="e9c-ou-ab3"/>
|
||||
<constraint firstItem="fkt-5i-wGo" firstAttribute="top" secondItem="9kQ-2p-WMi" secondAttribute="top" constant="20" id="fLC-0l-VdH"/>
|
||||
<constraint firstItem="9kQ-2p-WMi" firstAttribute="width" secondItem="fkt-5i-wGo" secondAttribute="width" id="wAU-pa-Nj6"/>
|
||||
<constraint firstItem="9kQ-2p-WMi" firstAttribute="top" secondItem="WH3-Kj-tPl" secondAttribute="top" constant="10" id="wfM-ih-liC"/>
|
||||
</constraints>
|
||||
<freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
|
||||
<connections>
|
||||
<outlet property="firstHeaderImage" destination="aGF-cs-ovJ" id="rwA-vJ-tQq"/>
|
||||
<outlet property="firstHeaderImage2" destination="hOp-Tb-y2w" id="Gnw-Vq-Qtz"/>
|
||||
<outlet property="firstIDLabel" destination="Is5-JJ-W6T" id="yC1-py-IEI"/>
|
||||
<outlet property="firstNameLabel" destination="Tww-5a-ZSt" id="29c-NC-Cmm"/>
|
||||
<outlet property="firstRankValueLabel" destination="Z7f-CG-uOk" id="rwb-av-cyP"/>
|
||||
<outlet property="secondHeaderImage" destination="TYB-N3-5Cs" id="Qge-D4-mRr"/>
|
||||
<outlet property="secondHeaderImage2" destination="Uue-tQ-gRt" id="BR3-WD-ipi"/>
|
||||
<outlet property="secondIDLabel" destination="JgV-Ob-RU0" id="pMQ-4f-Eah"/>
|
||||
<outlet property="secondNameLabel" destination="ckM-s4-iVh" id="Pzl-HS-g11"/>
|
||||
<outlet property="secondRankValueLabel" destination="hGy-Aa-hUg" id="y6S-Ir-dE9"/>
|
||||
<outlet property="thirdHeaderImage" destination="oRz-z8-zG5" id="fLv-y2-SGF"/>
|
||||
<outlet property="thirdHeaderImage2" destination="jh5-rY-O8T" id="aLk-Sw-tny"/>
|
||||
<outlet property="thirdIDLabel" destination="pwN-H0-3qj" id="Atn-0u-qI3"/>
|
||||
<outlet property="thirdNameLabel" destination="LeW-ad-gVJ" id="uFh-Id-F4W"/>
|
||||
<outlet property="thirdRankValueLabel" destination="6bp-EP-4mI" id="JHY-iH-k0p"/>
|
||||
</connections>
|
||||
<point key="canvasLocation" x="225.95419847328245" y="117.25352112676057"/>
|
||||
</view>
|
||||
</objects>
|
||||
<resources>
|
||||
<image name="rank_first_bg" width="110" height="124"/>
|
||||
<image name="rank_real_love_first_header" width="108" height="65"/>
|
||||
<image name="rank_real_love_second_header" width="95" height="60"/>
|
||||
<image name="rank_real_love_third_header" width="95" height="60"/>
|
||||
<image name="rank_real_love_value_bg" width="85" height="18"/>
|
||||
<image name="rank_second_bg" width="103" height="116"/>
|
||||
<image name="rank_third_bg" width="103" height="116"/>
|
||||
<image name="user_header_placehoulder" width="40" height="40"/>
|
||||
</resources>
|
||||
</document>
|
||||
25
QXLive/HomePage(声播)/View/首页/排行榜/QXRankListCell.h
Normal file
25
QXLive/HomePage(声播)/View/首页/排行榜/QXRankListCell.h
Normal file
@@ -0,0 +1,25 @@
|
||||
//
|
||||
// QXRankListCell.h
|
||||
// IsLandVoice
|
||||
//
|
||||
// Created by 启星 on 2025/3/4.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import "QXRankModel.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface QXRankListCell : UITableViewCell
|
||||
@property (weak, nonatomic) IBOutlet UILabel *numberLabel;
|
||||
@property (weak, nonatomic) IBOutlet UIImageView *headerImageView;
|
||||
@property (weak, nonatomic) IBOutlet UILabel *valueLabel;
|
||||
|
||||
@property (weak, nonatomic) IBOutlet UILabel *nameLabel;
|
||||
@property (nonatomic,strong)QXMyRankModel *model;
|
||||
/// 1 魅力 2 财富 3 房间 4 cp
|
||||
@property (nonatomic,assign)NSInteger rankType;
|
||||
+(instancetype)cellWithTableView:(UITableView*)tableView;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
48
QXLive/HomePage(声播)/View/首页/排行榜/QXRankListCell.m
Normal file
48
QXLive/HomePage(声播)/View/首页/排行榜/QXRankListCell.m
Normal file
@@ -0,0 +1,48 @@
|
||||
//
|
||||
// QXRankListCell.m
|
||||
// IsLandVoice
|
||||
//
|
||||
// Created by 启星 on 2025/3/4.
|
||||
//
|
||||
|
||||
#import "QXRankListCell.h"
|
||||
|
||||
@implementation QXRankListCell
|
||||
+(instancetype)cellWithTableView:(UITableView *)tableView{
|
||||
static NSString *cellId = @"QXRankListCell";
|
||||
QXRankListCell *cell = [tableView dequeueReusableCellWithIdentifier:cellId];
|
||||
if (!cell) {
|
||||
cell = [[NSBundle mainBundle] loadNibNamed:cellId owner:nil options:nil].lastObject;
|
||||
}
|
||||
return cell;
|
||||
}
|
||||
-(void)setRankType:(NSInteger)rankType{
|
||||
_rankType = rankType;
|
||||
}
|
||||
-(void)setModel:(QXMyRankModel *)model{
|
||||
_model = model;
|
||||
if (self.rankType == 0) {
|
||||
[self.headerImageView sd_setImageWithURL:[NSURL URLWithString:model.room_cover] placeholderImage:[UIImage imageNamed:@"user_header_placehoulder"]];
|
||||
self.nameLabel.text = model.room_name;
|
||||
self.valueLabel.text = [NSString qx_showHotCountNum:model.total.longLongValue];
|
||||
self.numberLabel.text = model.rank;
|
||||
}else{
|
||||
[self.headerImageView sd_setImageWithURL:[NSURL URLWithString:model.avatar] placeholderImage:[UIImage imageNamed:@"user_header_placehoulder"]];
|
||||
self.nameLabel.text = model.nickname;
|
||||
self.valueLabel.text = [NSString qx_showHotCountNum:model.total.longLongValue];
|
||||
self.numberLabel.text = model.rank;
|
||||
}
|
||||
|
||||
}
|
||||
- (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
|
||||
92
QXLive/HomePage(声播)/View/首页/排行榜/QXRankListCell.xib
Normal file
92
QXLive/HomePage(声播)/View/首页/排行榜/QXRankListCell.xib
Normal file
@@ -0,0 +1,92 @@
|
||||
<?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="97" id="KGk-i7-Jjw" customClass="QXRankListCell">
|
||||
<rect key="frame" x="0.0" y="0.0" width="454" height="97"/>
|
||||
<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="454" height="97"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="A6u-gx-qxe">
|
||||
<rect key="frame" x="15" y="40" width="30" height="17"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="30" id="nSB-ak-zSd"/>
|
||||
</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>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="user_header_placehoulder" translatesAutoresizingMaskIntoConstraints="NO" id="HlF-Pn-DKh">
|
||||
<rect key="frame" x="55" y="33.666666666666664" width="30" height="30"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="30" id="T1y-jn-Err"/>
|
||||
<constraint firstAttribute="height" constant="30" id="U9j-xw-QBf"/>
|
||||
</constraints>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
|
||||
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
|
||||
<integer key="value" value="15"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</imageView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="fzl-QL-ad0">
|
||||
<rect key="frame" x="101" y="40" width="244" 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="33" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="M4J-MV-C6I">
|
||||
<rect key="frame" x="383" y="40" width="55" height="17"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="55" id="Y5D-hq-2Hl"/>
|
||||
</constraints>
|
||||
<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>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Vector" translatesAutoresizingMaskIntoConstraints="NO" id="6vu-N8-8uU">
|
||||
<rect key="frame" x="355" y="38.666666666666664" width="20" height="20"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="20" id="RPP-W2-uG7"/>
|
||||
<constraint firstAttribute="height" constant="20" id="cIl-7y-QqE"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstItem="M4J-MV-C6I" firstAttribute="centerY" secondItem="H2p-sc-9uM" secondAttribute="centerY" id="3y8-eP-534"/>
|
||||
<constraint firstItem="fzl-QL-ad0" firstAttribute="centerY" secondItem="H2p-sc-9uM" secondAttribute="centerY" id="6qM-F0-kaU"/>
|
||||
<constraint firstItem="A6u-gx-qxe" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="15" id="KTD-SJ-b98"/>
|
||||
<constraint firstItem="fzl-QL-ad0" firstAttribute="leading" secondItem="HlF-Pn-DKh" secondAttribute="trailing" constant="16" id="KTy-bw-0M9"/>
|
||||
<constraint firstItem="6vu-N8-8uU" firstAttribute="leading" secondItem="fzl-QL-ad0" secondAttribute="trailing" constant="10" id="KfJ-GU-xhc"/>
|
||||
<constraint firstItem="HlF-Pn-DKh" firstAttribute="leading" secondItem="A6u-gx-qxe" secondAttribute="trailing" constant="10" id="QEi-Df-wpG"/>
|
||||
<constraint firstItem="HlF-Pn-DKh" firstAttribute="centerY" secondItem="H2p-sc-9uM" secondAttribute="centerY" id="UMC-XC-UHT"/>
|
||||
<constraint firstItem="6vu-N8-8uU" firstAttribute="centerY" secondItem="H2p-sc-9uM" secondAttribute="centerY" id="Wg4-GR-Vo4"/>
|
||||
<constraint firstAttribute="trailing" secondItem="M4J-MV-C6I" secondAttribute="trailing" constant="16" id="ZD2-V9-W5N"/>
|
||||
<constraint firstItem="A6u-gx-qxe" firstAttribute="centerY" secondItem="H2p-sc-9uM" secondAttribute="centerY" id="hee-RR-oRt"/>
|
||||
<constraint firstItem="M4J-MV-C6I" firstAttribute="leading" secondItem="6vu-N8-8uU" secondAttribute="trailing" constant="8" symbolic="YES" id="uhf-Kz-A7s"/>
|
||||
</constraints>
|
||||
</tableViewCellContentView>
|
||||
<viewLayoutGuide key="safeArea" id="aW0-zy-SZf"/>
|
||||
<connections>
|
||||
<outlet property="headerImageView" destination="HlF-Pn-DKh" id="qlM-wa-hJv"/>
|
||||
<outlet property="nameLabel" destination="fzl-QL-ad0" id="LiE-Uw-T5s"/>
|
||||
<outlet property="numberLabel" destination="A6u-gx-qxe" id="OYi-lV-qcy"/>
|
||||
<outlet property="valueLabel" destination="M4J-MV-C6I" id="fap-Ij-TGd"/>
|
||||
</connections>
|
||||
<point key="canvasLocation" x="241.22137404580153" y="38.380281690140848"/>
|
||||
</tableViewCell>
|
||||
</objects>
|
||||
<resources>
|
||||
<image name="Vector" width="14" height="14"/>
|
||||
<image name="user_header_placehoulder" width="128" height="128"/>
|
||||
</resources>
|
||||
</document>
|
||||
37
QXLive/HomePage(声播)/View/首页/排行榜/QXRankTopThreeView.h
Normal file
37
QXLive/HomePage(声播)/View/首页/排行榜/QXRankTopThreeView.h
Normal file
@@ -0,0 +1,37 @@
|
||||
//
|
||||
// QXRankTopThreeView.h
|
||||
// IsLandVoice
|
||||
//
|
||||
// Created by 启星 on 2025/3/4.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import "QXRankModel.h"
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface QXRankTopThreeView : UIView
|
||||
@property (weak, nonatomic) IBOutlet UIImageView *firstHeaderImage;
|
||||
@property (weak, nonatomic) IBOutlet UILabel *firstNameLabel;
|
||||
@property (weak, nonatomic) IBOutlet UILabel *firstIDLabel;
|
||||
@property (weak, nonatomic) IBOutlet UILabel *firstRankValueLabel;
|
||||
|
||||
@property (weak, nonatomic) IBOutlet UIImageView *secondHeaderImage;
|
||||
@property (weak, nonatomic) IBOutlet UILabel *secondNameLabel;
|
||||
@property (weak, nonatomic) IBOutlet UILabel *secondIDLabel;
|
||||
@property (weak, nonatomic) IBOutlet UILabel *secondRankValueLabel;
|
||||
|
||||
@property (weak, nonatomic) IBOutlet UIImageView *thirdHeaderImage;
|
||||
@property (weak, nonatomic) IBOutlet UILabel *thirdNameLabel;
|
||||
@property (weak, nonatomic) IBOutlet UILabel *thirdIDLabel;
|
||||
@property (weak, nonatomic) IBOutlet UILabel *thirdRankValueLabel;
|
||||
|
||||
@property (nonatomic,strong)NSArray<QXMyRankModel*>*list;
|
||||
//
|
||||
@property (nonatomic,strong)NSArray<QXMyRankModel*>*roomList;
|
||||
|
||||
@property (nonatomic,strong)NSArray<QXMyRankModel*>*guildList;
|
||||
|
||||
-(void)resetView;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
159
QXLive/HomePage(声播)/View/首页/排行榜/QXRankTopThreeView.m
Normal file
159
QXLive/HomePage(声播)/View/首页/排行榜/QXRankTopThreeView.m
Normal file
@@ -0,0 +1,159 @@
|
||||
//
|
||||
// QXRankTopThreeView.m
|
||||
// IsLandVoice
|
||||
//
|
||||
// Created by 启星 on 2025/3/4.
|
||||
//
|
||||
|
||||
#import "QXRankTopThreeView.h"
|
||||
|
||||
@implementation QXRankTopThreeView
|
||||
|
||||
- (instancetype)initWithFrame:(CGRect)frame
|
||||
{
|
||||
self = [super initWithFrame:frame];
|
||||
if (self) {
|
||||
self = [[[NSBundle mainBundle]loadNibNamed:@"QXRankTopThreeView" owner:nil options:nil] lastObject];
|
||||
self.frame = frame;
|
||||
}
|
||||
return self;
|
||||
}
|
||||
-(void)setList:(NSArray<QXMyRankModel *> *)list{
|
||||
_list = list;
|
||||
QXMyRankModel *firstModel;
|
||||
QXMyRankModel *secondModel;
|
||||
QXMyRankModel *thirdModel;
|
||||
if (list.count >= 3) {
|
||||
firstModel = list[0];
|
||||
secondModel = list[1];
|
||||
thirdModel = list[2];
|
||||
}
|
||||
if (list.count == 2) {
|
||||
firstModel = list[0];
|
||||
secondModel = list[1];
|
||||
}
|
||||
if (list.count == 1) {
|
||||
firstModel = list[0];
|
||||
}
|
||||
|
||||
if (firstModel) {
|
||||
[self.firstHeaderImage sd_setImageWithURL:[NSURL URLWithString:firstModel.avatar] placeholderImage:[UIImage imageNamed:@"user_header_placehoulder"]];
|
||||
self.firstNameLabel.text = firstModel.nickname;
|
||||
self.firstIDLabel.text = [NSString stringWithFormat:@"ID:%@",firstModel.user_code];
|
||||
self.firstRankValueLabel.text = [NSString qx_showHotCountNum:firstModel.total.longLongValue];
|
||||
self.firstRankValueLabel.adjustsFontSizeToFitWidth = YES;
|
||||
}
|
||||
|
||||
if (secondModel) {
|
||||
[self.secondHeaderImage sd_setImageWithURL:[NSURL URLWithString:secondModel.avatar] placeholderImage:[UIImage imageNamed:@"user_header_placehoulder"]];
|
||||
self.secondNameLabel.text = secondModel.nickname;
|
||||
self.secondIDLabel.text = [NSString stringWithFormat:@"ID:%@",secondModel.user_code];
|
||||
self.secondRankValueLabel.text = [NSString qx_showHotCountNum:secondModel.total.longLongValue];
|
||||
self.secondRankValueLabel.adjustsFontSizeToFitWidth = YES;
|
||||
}
|
||||
|
||||
if (thirdModel) {
|
||||
[self.thirdHeaderImage sd_setImageWithURL:[NSURL URLWithString:thirdModel.avatar] placeholderImage:[UIImage imageNamed:@"user_header_placehoulder"]];
|
||||
self.thirdNameLabel.text = thirdModel.nickname;
|
||||
self.thirdIDLabel.text = [NSString stringWithFormat:@"ID:%@",thirdModel.user_code];
|
||||
self.thirdRankValueLabel.text = [NSString qx_showHotCountNum:thirdModel.total.longLongValue];
|
||||
self.thirdRankValueLabel.adjustsFontSizeToFitWidth = YES;
|
||||
}
|
||||
}
|
||||
-(void)resetView{
|
||||
self.firstHeaderImage.image = [UIImage imageNamed:@"user_header_placehoulder"];
|
||||
self.secondHeaderImage.image = [UIImage imageNamed:@"user_header_placehoulder"];
|
||||
self.thirdHeaderImage.image = [UIImage imageNamed:@"user_header_placehoulder"];
|
||||
self.firstNameLabel.text = @"虚位以待";
|
||||
self.secondNameLabel.text = @"虚位以待";
|
||||
self.thirdNameLabel.text = @"虚位以待";
|
||||
self.firstIDLabel.text = @"ID:";
|
||||
self.secondIDLabel.text = @"ID:";
|
||||
self.thirdIDLabel.text = @"ID:";
|
||||
}
|
||||
//
|
||||
-(void)setRoomList:(NSArray<QXMyRankModel *> *)roomList{
|
||||
_roomList = roomList;
|
||||
QXMyRankModel *firstModel;
|
||||
QXMyRankModel *secondModel;
|
||||
QXMyRankModel *thirdModel;
|
||||
if (roomList.count >= 3) {
|
||||
firstModel = roomList[0];
|
||||
secondModel = roomList[1];
|
||||
thirdModel = roomList[2];
|
||||
}
|
||||
if (roomList.count == 2) {
|
||||
firstModel = roomList[0];
|
||||
secondModel = roomList[1];
|
||||
}
|
||||
if (roomList.count == 1) {
|
||||
firstModel = roomList[0];
|
||||
}
|
||||
|
||||
if (firstModel) {
|
||||
[self.firstHeaderImage sd_setImageWithURL:[NSURL URLWithString:firstModel.room_cover] placeholderImage:[UIImage imageNamed:@"user_header_placehoulder"]];
|
||||
self.firstNameLabel.text = firstModel.room_name;
|
||||
self.firstIDLabel.text = [NSString stringWithFormat:@"ID:%@",firstModel.room_number];
|
||||
self.firstRankValueLabel.text = [NSString qx_showHotCountNum:firstModel.total.longLongValue];
|
||||
self.firstRankValueLabel.adjustsFontSizeToFitWidth = YES;
|
||||
}
|
||||
|
||||
if (secondModel) {
|
||||
[self.secondHeaderImage sd_setImageWithURL:[NSURL URLWithString:secondModel.room_cover] placeholderImage:[UIImage imageNamed:@"user_header_placehoulder"]];
|
||||
self.secondNameLabel.text = secondModel.room_name;
|
||||
self.secondIDLabel.text = [NSString stringWithFormat:@"ID:%@",secondModel.room_number];
|
||||
self.secondRankValueLabel.text = [NSString qx_showHotCountNum:secondModel.total.longLongValue];
|
||||
self.secondRankValueLabel.adjustsFontSizeToFitWidth = YES;
|
||||
}
|
||||
|
||||
if (thirdModel) {
|
||||
[self.thirdHeaderImage sd_setImageWithURL:[NSURL URLWithString:thirdModel.room_cover] placeholderImage:[UIImage imageNamed:@"user_header_placehoulder"]];
|
||||
self.thirdNameLabel.text = thirdModel.room_name;
|
||||
self.thirdIDLabel.text = [NSString stringWithFormat:@"ID:%@",thirdModel.room_number];
|
||||
self.thirdRankValueLabel.text = [NSString qx_showHotCountNum:thirdModel.total.longLongValue];
|
||||
self.thirdRankValueLabel.adjustsFontSizeToFitWidth = YES;
|
||||
}
|
||||
}
|
||||
-(void)setGuildList:(NSArray<QXMyRankModel *> *)guildList{
|
||||
_guildList = guildList;
|
||||
QXMyRankModel *firstModel;
|
||||
QXMyRankModel *secondModel;
|
||||
QXMyRankModel *thirdModel;
|
||||
if (guildList.count >= 3) {
|
||||
firstModel = guildList[0];
|
||||
secondModel = guildList[1];
|
||||
thirdModel = guildList[2];
|
||||
}
|
||||
if (guildList.count == 2) {
|
||||
firstModel = guildList[0];
|
||||
secondModel = guildList[1];
|
||||
}
|
||||
if (guildList.count == 1) {
|
||||
firstModel = guildList[0];
|
||||
}
|
||||
|
||||
if (firstModel) {
|
||||
[self.firstHeaderImage sd_setImageWithURL:[NSURL URLWithString:firstModel.cover] placeholderImage:[UIImage imageNamed:@"user_header_placehoulder"]];
|
||||
self.firstNameLabel.text = firstModel.guild_name;
|
||||
self.firstIDLabel.text = [NSString stringWithFormat:@"ID:%@",firstModel.guild_special_id];
|
||||
self.firstRankValueLabel.text = [NSString qx_showHotCountNum:firstModel.total.longLongValue];
|
||||
self.firstRankValueLabel.adjustsFontSizeToFitWidth = YES;
|
||||
}
|
||||
|
||||
if (secondModel) {
|
||||
[self.secondHeaderImage sd_setImageWithURL:[NSURL URLWithString:secondModel.cover] placeholderImage:[UIImage imageNamed:@"user_header_placehoulder"]];
|
||||
self.secondNameLabel.text = secondModel.guild_name;
|
||||
self.secondIDLabel.text = [NSString stringWithFormat:@"ID:%@",secondModel.guild_special_id];
|
||||
self.secondRankValueLabel.text = [NSString qx_showHotCountNum:secondModel.total.longLongValue];
|
||||
self.secondRankValueLabel.adjustsFontSizeToFitWidth = YES;
|
||||
}
|
||||
|
||||
if (thirdModel) {
|
||||
[self.thirdHeaderImage sd_setImageWithURL:[NSURL URLWithString:thirdModel.cover] placeholderImage:[UIImage imageNamed:@"user_header_placehoulder"]];
|
||||
self.thirdNameLabel.text = thirdModel.guild_name;
|
||||
self.thirdIDLabel.text = [NSString stringWithFormat:@"ID:%@",thirdModel.guild_special_id];
|
||||
self.thirdRankValueLabel.text = [NSString qx_showHotCountNum:thirdModel.total.longLongValue];
|
||||
self.thirdRankValueLabel.adjustsFontSizeToFitWidth = YES;
|
||||
}
|
||||
}
|
||||
@end
|
||||
332
QXLive/HomePage(声播)/View/首页/排行榜/QXRankTopThreeView.xib
Normal file
332
QXLive/HomePage(声播)/View/首页/排行榜/QXRankTopThreeView.xib
Normal file
@@ -0,0 +1,332 @@
|
||||
<?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"/>
|
||||
<view contentMode="scaleToFill" id="iN0-l3-epB" customClass="QXRankTopThreeView">
|
||||
<rect key="frame" x="0.0" y="0.0" width="438" height="230"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="XUB-Y8-XcZ">
|
||||
<rect key="frame" x="16.000000000000007" y="30" width="126.66666666666669" height="190"/>
|
||||
<subviews>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="rank_first_bg" translatesAutoresizingMaskIntoConstraints="NO" id="Udd-CZ-76S">
|
||||
<rect key="frame" x="0.0" y="30" width="126.66666666666667" height="150"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="150" id="OpL-6e-PQF"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="user_header_placehoulder" translatesAutoresizingMaskIntoConstraints="NO" id="yUs-Y6-slK">
|
||||
<rect key="frame" x="36" y="10" width="55" height="55"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="55" id="6eF-8z-4xj"/>
|
||||
<constraint firstAttribute="width" constant="55" id="V64-MD-1q7"/>
|
||||
</constraints>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
|
||||
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
|
||||
<real key="value" value="27.5"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</imageView>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="rank_second_header" translatesAutoresizingMaskIntoConstraints="NO" id="AvX-gb-Qj2">
|
||||
<rect key="frame" x="28.333333333333336" y="2.6666666666666643" width="70" height="70"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="70" id="etW-86-HWO"/>
|
||||
<constraint firstAttribute="width" constant="70" id="yuf-mK-GWS"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="TOP 2" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="hrW-iv-2GA">
|
||||
<rect key="frame" x="0.0" y="77.666666666666671" width="126.66666666666667" height="25"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="25" id="ePo-8S-kGh"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" type="system" weight="heavy" pointSize="17"/>
|
||||
<color key="textColor" red="0.27058823529411763" green="0.52549019607843139" blue="0.8666666666666667" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<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="1cb-gO-110">
|
||||
<rect key="frame" x="0.0" y="104.66666666666666" width="126.66666666666667" 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="ID:" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="YVj-S5-pMv">
|
||||
<rect key="frame" x="0.0" y="124.66666666666666" width="126.66666666666667" 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>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="rank_value_bg" translatesAutoresizingMaskIntoConstraints="NO" id="cNU-er-wVt">
|
||||
<rect key="frame" x="21" y="150" width="85" height="20"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="85" id="a6v-Ha-yCN"/>
|
||||
<constraint firstAttribute="height" constant="20" id="qrO-iJ-Ran"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="N38-n0-ZM2">
|
||||
<rect key="frame" x="41" y="149.66666666666666" width="60" height="21"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="21" id="DWS-UI-7S3"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="12"/>
|
||||
<color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstItem="cNU-er-wVt" firstAttribute="centerX" secondItem="Udd-CZ-76S" secondAttribute="centerX" id="0ZC-eg-UcP"/>
|
||||
<constraint firstItem="yUs-Y6-slK" firstAttribute="centerX" secondItem="Udd-CZ-76S" secondAttribute="centerX" id="3zb-ps-32a"/>
|
||||
<constraint firstAttribute="trailing" secondItem="Udd-CZ-76S" secondAttribute="trailing" id="5Xc-AW-dq0"/>
|
||||
<constraint firstItem="cNU-er-wVt" firstAttribute="bottom" secondItem="Udd-CZ-76S" secondAttribute="bottom" constant="-10" id="8Jy-xb-M2A"/>
|
||||
<constraint firstItem="1cb-gO-110" firstAttribute="leading" secondItem="Udd-CZ-76S" secondAttribute="leading" id="GzX-Vy-k5H"/>
|
||||
<constraint firstItem="hrW-iv-2GA" firstAttribute="top" secondItem="AvX-gb-Qj2" secondAttribute="bottom" constant="5" id="JdB-Mt-Ubh"/>
|
||||
<constraint firstAttribute="height" constant="190" id="Jfy-QF-AUp"/>
|
||||
<constraint firstItem="1cb-gO-110" firstAttribute="top" secondItem="hrW-iv-2GA" secondAttribute="bottom" constant="2" id="Mid-SH-KMl"/>
|
||||
<constraint firstItem="YVj-S5-pMv" firstAttribute="trailing" secondItem="Udd-CZ-76S" secondAttribute="trailing" id="QYa-aT-fWw"/>
|
||||
<constraint firstAttribute="bottom" secondItem="Udd-CZ-76S" secondAttribute="bottom" constant="10" id="asr-zA-QjP"/>
|
||||
<constraint firstItem="hrW-iv-2GA" firstAttribute="trailing" secondItem="Udd-CZ-76S" secondAttribute="trailing" id="f00-XJ-SYT"/>
|
||||
<constraint firstItem="hrW-iv-2GA" firstAttribute="leading" secondItem="Udd-CZ-76S" secondAttribute="leading" id="gMf-cA-GyC"/>
|
||||
<constraint firstItem="YVj-S5-pMv" firstAttribute="leading" secondItem="Udd-CZ-76S" secondAttribute="leading" id="iuR-XR-by4"/>
|
||||
<constraint firstItem="AvX-gb-Qj2" firstAttribute="centerY" secondItem="yUs-Y6-slK" secondAttribute="centerY" id="o0C-7g-FaY"/>
|
||||
<constraint firstItem="N38-n0-ZM2" firstAttribute="centerY" secondItem="cNU-er-wVt" secondAttribute="centerY" id="qgC-JE-VoE"/>
|
||||
<constraint firstItem="YVj-S5-pMv" firstAttribute="top" secondItem="1cb-gO-110" secondAttribute="bottom" constant="3" id="rue-Mh-n41"/>
|
||||
<constraint firstItem="Udd-CZ-76S" firstAttribute="leading" secondItem="XUB-Y8-XcZ" secondAttribute="leading" id="t53-rK-r8p"/>
|
||||
<constraint firstItem="N38-n0-ZM2" firstAttribute="leading" secondItem="cNU-er-wVt" secondAttribute="leading" constant="20" id="tvs-gN-vfv"/>
|
||||
<constraint firstItem="yUs-Y6-slK" firstAttribute="top" secondItem="Udd-CZ-76S" secondAttribute="top" constant="-20" id="wlR-gY-AfB"/>
|
||||
<constraint firstItem="1cb-gO-110" firstAttribute="trailing" secondItem="Udd-CZ-76S" secondAttribute="trailing" id="wqs-cd-axN"/>
|
||||
<constraint firstItem="N38-n0-ZM2" firstAttribute="trailing" secondItem="cNU-er-wVt" secondAttribute="trailing" constant="-5" id="wtQ-ub-w9L"/>
|
||||
<constraint firstItem="AvX-gb-Qj2" firstAttribute="centerX" secondItem="yUs-Y6-slK" secondAttribute="centerX" id="yWU-0M-37q"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="YTz-cQ-cnc">
|
||||
<rect key="frame" x="155.66666666666666" y="10" width="126.66666666666666" height="190"/>
|
||||
<subviews>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="rank_second_bg" translatesAutoresizingMaskIntoConstraints="NO" id="OYC-81-j70">
|
||||
<rect key="frame" x="0.0" y="30" width="126.66666666666667" height="150"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="150" id="20d-Os-Gh8"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="user_header_placehoulder" translatesAutoresizingMaskIntoConstraints="NO" id="Qla-Q4-61p">
|
||||
<rect key="frame" x="36" y="10" width="55" height="55"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="55" id="dF6-xJ-QPU"/>
|
||||
<constraint firstAttribute="width" constant="55" id="y73-KC-MmY"/>
|
||||
</constraints>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
|
||||
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
|
||||
<real key="value" value="27.5"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</imageView>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="rank_first_header" translatesAutoresizingMaskIntoConstraints="NO" id="b5j-h9-fHj">
|
||||
<rect key="frame" x="28.333333333333343" y="2.6666666666666643" width="70" height="70"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="70" id="RPj-PA-Yue"/>
|
||||
<constraint firstAttribute="width" constant="70" id="UEq-Yf-IPd"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="TOP 1" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Yag-FZ-Hxd">
|
||||
<rect key="frame" x="0.0" y="77.666666666666671" width="126.66666666666667" height="25"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="25" id="4w5-Rv-dCA"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" type="system" weight="heavy" pointSize="17"/>
|
||||
<color key="textColor" red="0.84313725490196079" green="0.30196078431372547" blue="0.17254901960784313" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<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="ZoJ-2X-OhT">
|
||||
<rect key="frame" x="0.0" y="104.66666666666667" width="126.66666666666667" 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="ID:" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="y6v-rD-4Gf">
|
||||
<rect key="frame" x="0.0" y="124.66666666666666" width="126.66666666666667" 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>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="rank_value_bg" translatesAutoresizingMaskIntoConstraints="NO" id="AP3-Al-g1n">
|
||||
<rect key="frame" x="21" y="150" width="85" height="20"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="85" id="94n-mT-9iE"/>
|
||||
<constraint firstAttribute="height" constant="20" id="QgK-xn-ORo"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="UPu-Oc-Pap">
|
||||
<rect key="frame" x="41" y="149.66666666666666" width="60" height="21"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="21" id="oZt-bc-coz"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="12"/>
|
||||
<color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstItem="y6v-rD-4Gf" firstAttribute="trailing" secondItem="OYC-81-j70" secondAttribute="trailing" id="38A-WK-w2o"/>
|
||||
<constraint firstItem="Yag-FZ-Hxd" firstAttribute="trailing" secondItem="OYC-81-j70" secondAttribute="trailing" id="3vs-tP-yFe"/>
|
||||
<constraint firstItem="y6v-rD-4Gf" firstAttribute="leading" secondItem="OYC-81-j70" secondAttribute="leading" id="5i5-yN-jA7"/>
|
||||
<constraint firstItem="y6v-rD-4Gf" firstAttribute="top" secondItem="ZoJ-2X-OhT" secondAttribute="bottom" constant="3" id="8Qo-tE-ZQB"/>
|
||||
<constraint firstItem="UPu-Oc-Pap" firstAttribute="centerY" secondItem="AP3-Al-g1n" secondAttribute="centerY" id="DwW-Xy-41n"/>
|
||||
<constraint firstItem="UPu-Oc-Pap" firstAttribute="leading" secondItem="AP3-Al-g1n" secondAttribute="leading" constant="20" id="EEW-9Y-c6k"/>
|
||||
<constraint firstItem="ZoJ-2X-OhT" firstAttribute="leading" secondItem="OYC-81-j70" secondAttribute="leading" id="FoV-c3-OQp"/>
|
||||
<constraint firstItem="Qla-Q4-61p" firstAttribute="centerX" secondItem="OYC-81-j70" secondAttribute="centerX" id="GlL-b6-uM4"/>
|
||||
<constraint firstItem="AP3-Al-g1n" firstAttribute="centerX" secondItem="OYC-81-j70" secondAttribute="centerX" id="Yrt-Wy-qFX"/>
|
||||
<constraint firstItem="Yag-FZ-Hxd" firstAttribute="leading" secondItem="OYC-81-j70" secondAttribute="leading" id="asH-Gs-kM0"/>
|
||||
<constraint firstItem="Yag-FZ-Hxd" firstAttribute="top" secondItem="b5j-h9-fHj" secondAttribute="bottom" constant="5" id="cNy-cu-FRK"/>
|
||||
<constraint firstItem="Qla-Q4-61p" firstAttribute="top" secondItem="OYC-81-j70" secondAttribute="top" constant="-20" id="d8L-tR-zrX"/>
|
||||
<constraint firstItem="UPu-Oc-Pap" firstAttribute="trailing" secondItem="AP3-Al-g1n" secondAttribute="trailing" constant="-5" id="gLB-Qa-3yB"/>
|
||||
<constraint firstItem="ZoJ-2X-OhT" firstAttribute="top" secondItem="Yag-FZ-Hxd" secondAttribute="bottom" constant="2" id="hkT-40-gxD"/>
|
||||
<constraint firstItem="b5j-h9-fHj" firstAttribute="centerX" secondItem="Qla-Q4-61p" secondAttribute="centerX" id="qeS-Ko-x2k"/>
|
||||
<constraint firstAttribute="bottom" secondItem="OYC-81-j70" secondAttribute="bottom" constant="10" id="qra-jQ-HuG"/>
|
||||
<constraint firstItem="OYC-81-j70" firstAttribute="leading" secondItem="YTz-cQ-cnc" secondAttribute="leading" id="ui1-rt-TLL"/>
|
||||
<constraint firstItem="b5j-h9-fHj" firstAttribute="centerY" secondItem="Qla-Q4-61p" secondAttribute="centerY" id="wE7-kT-0cA"/>
|
||||
<constraint firstItem="ZoJ-2X-OhT" firstAttribute="trailing" secondItem="OYC-81-j70" secondAttribute="trailing" id="xUJ-An-uJd"/>
|
||||
<constraint firstItem="AP3-Al-g1n" firstAttribute="bottom" secondItem="OYC-81-j70" secondAttribute="bottom" constant="-10" id="yJS-5l-52b"/>
|
||||
<constraint firstAttribute="height" constant="190" id="ymO-VJ-qeF"/>
|
||||
<constraint firstAttribute="trailing" secondItem="OYC-81-j70" secondAttribute="trailing" id="zi1-Z3-Vdu"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="v5g-yt-Tiv">
|
||||
<rect key="frame" x="295.33333333333331" y="30" width="126.66666666666669" height="190"/>
|
||||
<subviews>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="rank_third_bg" translatesAutoresizingMaskIntoConstraints="NO" id="bAp-HV-Zc7">
|
||||
<rect key="frame" x="0.0" y="30" width="126.66666666666667" height="150"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="150" id="i6w-Yw-0XV"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="user_header_placehoulder" translatesAutoresizingMaskIntoConstraints="NO" id="Dt4-sc-cd4">
|
||||
<rect key="frame" x="36" y="10" width="55" height="55"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="55" id="Jnt-9u-oIl"/>
|
||||
<constraint firstAttribute="width" constant="55" id="ZOy-UO-FXw"/>
|
||||
</constraints>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
|
||||
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
|
||||
<real key="value" value="27.5"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</imageView>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="rank_third_header" translatesAutoresizingMaskIntoConstraints="NO" id="O3B-Qw-b3G">
|
||||
<rect key="frame" x="28.333333333333371" y="2.6666666666666643" width="70" height="70"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="70" id="BXi-JR-Idl"/>
|
||||
<constraint firstAttribute="height" constant="70" id="mHP-Gy-cuf"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="TOP 3" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="FvS-gS-VUF">
|
||||
<rect key="frame" x="0.0" y="74.666666666666671" width="126.66666666666667" height="25"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="25" id="yHg-qN-S7S"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" type="system" weight="heavy" pointSize="17"/>
|
||||
<color key="textColor" red="0.8901960784313725" green="0.5647524634853941" blue="0.27059417517006801" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<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="zaf-sd-VhI">
|
||||
<rect key="frame" x="0.0" y="101.66666666666666" width="126.66666666666667" 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="ID:" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="XSS-VJ-7Gi">
|
||||
<rect key="frame" x="0.0" y="121.66666666666666" width="126.66666666666667" 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>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="rank_value_bg" translatesAutoresizingMaskIntoConstraints="NO" id="xIs-Qs-ZUi">
|
||||
<rect key="frame" x="21" y="150" width="85" height="20"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="20" id="5CX-XP-Nzj"/>
|
||||
<constraint firstAttribute="width" constant="85" id="Cwb-nd-chf"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="7n9-wN-Uuy">
|
||||
<rect key="frame" x="41" y="149.66666666666666" width="60" height="21"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="21" id="8hr-2B-Svz"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="12"/>
|
||||
<color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstItem="FvS-gS-VUF" firstAttribute="leading" secondItem="bAp-HV-Zc7" secondAttribute="leading" id="0JF-KO-SFJ"/>
|
||||
<constraint firstItem="bAp-HV-Zc7" firstAttribute="leading" secondItem="v5g-yt-Tiv" secondAttribute="leading" id="2h5-iQ-9oL"/>
|
||||
<constraint firstItem="7n9-wN-Uuy" firstAttribute="centerY" secondItem="xIs-Qs-ZUi" secondAttribute="centerY" id="2lI-Rd-UDg"/>
|
||||
<constraint firstItem="XSS-VJ-7Gi" firstAttribute="top" secondItem="zaf-sd-VhI" secondAttribute="bottom" constant="3" id="2lN-Re-eP4"/>
|
||||
<constraint firstItem="O3B-Qw-b3G" firstAttribute="centerY" secondItem="Dt4-sc-cd4" secondAttribute="centerY" id="4wN-aC-Dp3"/>
|
||||
<constraint firstAttribute="height" constant="190" id="59l-Xe-SZI"/>
|
||||
<constraint firstItem="zaf-sd-VhI" firstAttribute="trailing" secondItem="bAp-HV-Zc7" secondAttribute="trailing" id="83l-Mo-KDX"/>
|
||||
<constraint firstAttribute="bottom" secondItem="bAp-HV-Zc7" secondAttribute="bottom" constant="10" id="Bjo-RJ-N9Q"/>
|
||||
<constraint firstItem="7n9-wN-Uuy" firstAttribute="trailing" secondItem="xIs-Qs-ZUi" secondAttribute="trailing" constant="-5" id="MIJ-zp-9TR"/>
|
||||
<constraint firstItem="FvS-gS-VUF" firstAttribute="trailing" secondItem="bAp-HV-Zc7" secondAttribute="trailing" id="O6G-zi-LeN"/>
|
||||
<constraint firstItem="Dt4-sc-cd4" firstAttribute="top" secondItem="bAp-HV-Zc7" secondAttribute="top" constant="-20" id="W6G-2n-pkC"/>
|
||||
<constraint firstItem="Dt4-sc-cd4" firstAttribute="centerX" secondItem="bAp-HV-Zc7" secondAttribute="centerX" id="ZeF-xV-20d"/>
|
||||
<constraint firstItem="XSS-VJ-7Gi" firstAttribute="trailing" secondItem="bAp-HV-Zc7" secondAttribute="trailing" id="e2C-Tu-0qj"/>
|
||||
<constraint firstItem="zaf-sd-VhI" firstAttribute="top" secondItem="FvS-gS-VUF" secondAttribute="bottom" constant="2" id="g57-ez-75o"/>
|
||||
<constraint firstItem="XSS-VJ-7Gi" firstAttribute="leading" secondItem="bAp-HV-Zc7" secondAttribute="leading" id="j2M-tH-Nkl"/>
|
||||
<constraint firstItem="O3B-Qw-b3G" firstAttribute="centerX" secondItem="Dt4-sc-cd4" secondAttribute="centerX" id="jtI-yw-AVJ"/>
|
||||
<constraint firstItem="xIs-Qs-ZUi" firstAttribute="bottom" secondItem="bAp-HV-Zc7" secondAttribute="bottom" constant="-10" id="n6f-YO-GEj"/>
|
||||
<constraint firstItem="FvS-gS-VUF" firstAttribute="top" secondItem="O3B-Qw-b3G" secondAttribute="bottom" constant="2" id="pCS-8t-Sdh"/>
|
||||
<constraint firstItem="zaf-sd-VhI" firstAttribute="leading" secondItem="bAp-HV-Zc7" secondAttribute="leading" id="u55-Sp-Gcu"/>
|
||||
<constraint firstItem="7n9-wN-Uuy" firstAttribute="leading" secondItem="xIs-Qs-ZUi" secondAttribute="leading" constant="20" id="ucl-We-U9T"/>
|
||||
<constraint firstAttribute="trailing" secondItem="bAp-HV-Zc7" secondAttribute="trailing" id="w0H-sm-R6j"/>
|
||||
<constraint firstItem="xIs-Qs-ZUi" firstAttribute="centerX" secondItem="bAp-HV-Zc7" secondAttribute="centerX" id="x7Y-HY-I4W"/>
|
||||
</constraints>
|
||||
</view>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstItem="v5g-yt-Tiv" firstAttribute="top" secondItem="YTz-cQ-cnc" secondAttribute="top" constant="20" id="0R3-r5-Wxd"/>
|
||||
<constraint firstItem="XUB-Y8-XcZ" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="16" id="N3B-R1-7yD"/>
|
||||
<constraint firstItem="XUB-Y8-XcZ" firstAttribute="top" secondItem="YTz-cQ-cnc" secondAttribute="top" constant="20" id="T7Y-QD-Rmk"/>
|
||||
<constraint firstAttribute="trailing" secondItem="v5g-yt-Tiv" secondAttribute="trailing" constant="16" id="WVw-as-Mru"/>
|
||||
<constraint firstItem="YTz-cQ-cnc" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" constant="10" id="Xam-R0-afY"/>
|
||||
<constraint firstItem="YTz-cQ-cnc" firstAttribute="width" secondItem="XUB-Y8-XcZ" secondAttribute="width" id="bjS-d4-o6d"/>
|
||||
<constraint firstItem="YTz-cQ-cnc" firstAttribute="leading" secondItem="XUB-Y8-XcZ" secondAttribute="trailing" constant="13" id="grr-dS-qvb"/>
|
||||
<constraint firstItem="v5g-yt-Tiv" firstAttribute="width" secondItem="XUB-Y8-XcZ" secondAttribute="width" id="kyg-aW-8jU"/>
|
||||
<constraint firstItem="v5g-yt-Tiv" firstAttribute="leading" secondItem="YTz-cQ-cnc" secondAttribute="trailing" constant="13" id="mho-CF-53Q"/>
|
||||
</constraints>
|
||||
<freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
|
||||
<connections>
|
||||
<outlet property="firstHeaderImage" destination="Qla-Q4-61p" id="9iw-tV-D9i"/>
|
||||
<outlet property="firstIDLabel" destination="y6v-rD-4Gf" id="Zu5-7N-rE4"/>
|
||||
<outlet property="firstNameLabel" destination="ZoJ-2X-OhT" id="RE2-pw-FkQ"/>
|
||||
<outlet property="firstRankValueLabel" destination="UPu-Oc-Pap" id="bI7-rg-MwP"/>
|
||||
<outlet property="secondHeaderImage" destination="yUs-Y6-slK" id="uyW-dP-THq"/>
|
||||
<outlet property="secondIDLabel" destination="YVj-S5-pMv" id="hhc-qc-U1J"/>
|
||||
<outlet property="secondNameLabel" destination="1cb-gO-110" id="kZA-l2-ULy"/>
|
||||
<outlet property="secondRankValueLabel" destination="N38-n0-ZM2" id="58k-o4-2cZ"/>
|
||||
<outlet property="thirdHeaderImage" destination="Dt4-sc-cd4" id="Xnp-w3-omi"/>
|
||||
<outlet property="thirdIDLabel" destination="XSS-VJ-7Gi" id="Ion-fD-0im"/>
|
||||
<outlet property="thirdNameLabel" destination="zaf-sd-VhI" id="i1e-MY-xKc"/>
|
||||
<outlet property="thirdRankValueLabel" destination="7n9-wN-Uuy" id="JTa-ty-Wtk"/>
|
||||
</connections>
|
||||
<point key="canvasLocation" x="225.95419847328245" y="117.25352112676057"/>
|
||||
</view>
|
||||
</objects>
|
||||
<resources>
|
||||
<image name="rank_first_bg" width="110" height="124"/>
|
||||
<image name="rank_first_header" width="64" height="64"/>
|
||||
<image name="rank_second_bg" width="103" height="116"/>
|
||||
<image name="rank_second_header" width="64" height="64"/>
|
||||
<image name="rank_third_bg" width="103" height="116"/>
|
||||
<image name="rank_third_header" width="64" height="64"/>
|
||||
<image name="rank_value_bg" width="85" height="18"/>
|
||||
<image name="user_header_placehoulder" width="40" height="40"/>
|
||||
</resources>
|
||||
</document>
|
||||
23
QXLive/HomePage(声播)/View/首页/排行榜/QXRankTypeView.h
Normal file
23
QXLive/HomePage(声播)/View/首页/排行榜/QXRankTypeView.h
Normal file
@@ -0,0 +1,23 @@
|
||||
//
|
||||
// QXRankTypeView.h
|
||||
// IsLandVoice
|
||||
//
|
||||
// Created by 启星 on 2025/3/3.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
typedef NS_ENUM(NSInteger) {
|
||||
QXRankTypeDay = 1,
|
||||
QXRankTypeWeek = 2,
|
||||
QXRankTypeMonth
|
||||
}QXRankType;
|
||||
@interface QXRankTypeView : UIView
|
||||
@property (nonatomic,copy)void(^rankTypeBlock)(QXRankType type);
|
||||
@end
|
||||
|
||||
@interface QXRankTypeButton : UIButton
|
||||
|
||||
@end
|
||||
NS_ASSUME_NONNULL_END
|
||||
118
QXLive/HomePage(声播)/View/首页/排行榜/QXRankTypeView.m
Normal file
118
QXLive/HomePage(声播)/View/首页/排行榜/QXRankTypeView.m
Normal file
@@ -0,0 +1,118 @@
|
||||
//
|
||||
// QXRankTypeView.m
|
||||
// IsLandVoice
|
||||
//
|
||||
// Created by 启星 on 2025/3/3.
|
||||
//
|
||||
|
||||
#import "QXRankTypeView.h"
|
||||
@interface QXRankTypeView()
|
||||
@property (nonatomic,strong)QXRankTypeButton*dayBtn;
|
||||
@property (nonatomic,strong)QXRankTypeButton*weekBtn;
|
||||
@property (nonatomic,strong)QXRankTypeButton*monthBtn;
|
||||
@property (nonatomic,strong)QXRankTypeButton*tmpBtn;
|
||||
@end
|
||||
|
||||
@implementation QXRankTypeView
|
||||
|
||||
- (instancetype)initWithFrame:(CGRect)frame
|
||||
{
|
||||
self = [super initWithFrame:frame];
|
||||
if (self) {
|
||||
[self createViews];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
-(void)createViews{
|
||||
self.dayBtn.selected = YES;
|
||||
[self addSubview:self.dayBtn];
|
||||
[self addSubview:self.weekBtn];
|
||||
[self addSubview:self.monthBtn];
|
||||
self.tmpBtn = self.dayBtn;
|
||||
CGFloat btnWidth = (SCREEN_WIDTH-64*2-16*2)/3.0;
|
||||
[self.dayBtn mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.mas_equalTo(64);
|
||||
make.height.mas_equalTo(35);
|
||||
make.width.mas_equalTo(btnWidth);
|
||||
make.centerY.mas_equalTo(self);
|
||||
}];
|
||||
[self.weekBtn mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.equalTo(self.dayBtn.mas_right).offset(16);
|
||||
make.height.mas_equalTo(35);
|
||||
make.width.mas_equalTo(btnWidth);
|
||||
make.centerY.mas_equalTo(self);
|
||||
}];
|
||||
[self.monthBtn mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.equalTo(self.weekBtn.mas_right).offset(16);
|
||||
make.height.mas_equalTo(35);
|
||||
make.width.mas_equalTo(btnWidth);
|
||||
make.centerY.mas_equalTo(self);
|
||||
}];
|
||||
|
||||
}
|
||||
|
||||
-(void)typeAction:(QXRankTypeButton*)button{
|
||||
self.tmpBtn.selected = !self.tmpBtn.selected;
|
||||
button.selected = !button.selected;
|
||||
self.tmpBtn = button;
|
||||
if (self.rankTypeBlock) {
|
||||
self.rankTypeBlock(button.tag);
|
||||
}
|
||||
}
|
||||
|
||||
-(QXRankTypeButton *)dayBtn{
|
||||
if (!_dayBtn) {
|
||||
_dayBtn = [[QXRankTypeButton alloc] init];
|
||||
[_dayBtn setTitle:@"日榜" forState:(UIControlStateNormal)];
|
||||
[_dayBtn addTarget:self action:@selector(typeAction:) forControlEvents:(UIControlEventTouchUpInside)];
|
||||
_dayBtn.layer.masksToBounds = YES;
|
||||
_dayBtn.layer.cornerRadius = 17.5;
|
||||
_dayBtn.tag = 1;
|
||||
}
|
||||
return _dayBtn;
|
||||
}
|
||||
-(QXRankTypeButton *)weekBtn{
|
||||
if (!_weekBtn) {
|
||||
_weekBtn = [[QXRankTypeButton alloc] init];
|
||||
[_weekBtn setTitle:@"周榜" forState:(UIControlStateNormal)];
|
||||
[_weekBtn addTarget:self action:@selector(typeAction:) forControlEvents:(UIControlEventTouchUpInside)];
|
||||
_weekBtn.layer.masksToBounds = YES;
|
||||
_weekBtn.layer.cornerRadius = 17.5;
|
||||
_weekBtn.tag = 2;
|
||||
}
|
||||
return _weekBtn;
|
||||
}
|
||||
-(QXRankTypeButton *)monthBtn{
|
||||
if (!_monthBtn) {
|
||||
_monthBtn = [[QXRankTypeButton alloc] init];
|
||||
[_monthBtn setTitle:@"月榜" forState:(UIControlStateNormal)];
|
||||
[_monthBtn addTarget:self action:@selector(typeAction:) forControlEvents:(UIControlEventTouchUpInside)];
|
||||
_monthBtn.layer.masksToBounds = YES;
|
||||
_monthBtn.layer.cornerRadius = 17.5;
|
||||
_monthBtn.tag = 3;
|
||||
}
|
||||
return _monthBtn;
|
||||
}
|
||||
@end
|
||||
|
||||
@implementation QXRankTypeButton
|
||||
- (instancetype)init
|
||||
{
|
||||
self = [super init];
|
||||
if (self) {
|
||||
[self setTitleColor:QXConfig.btnTextColor forState:(UIControlStateNormal)];
|
||||
self.titleLabel.font = [UIFont boldSystemFontOfSize:14];
|
||||
self.backgroundColor = RGB16(0xF6F6F6);
|
||||
}
|
||||
return self;
|
||||
}
|
||||
-(void)setSelected:(BOOL)selected{
|
||||
[super setSelected:selected];
|
||||
if (selected) {
|
||||
self.backgroundColor = QXConfig.themeColor ;
|
||||
}else{
|
||||
self.backgroundColor = RGB16(0xF6F6F6);
|
||||
}
|
||||
}
|
||||
|
||||
@end
|
||||
Reference in New Issue
Block a user