Commit 523e9cbb by pierce

加上页面

parent 87de2809
Showing with 405 additions and 203 deletions
......@@ -40,7 +40,7 @@ public struct GDPersonalPublicWebURL {
// 帮助地址
public static var help: String { GDToolBoxPlugins.shared.apiPlugin.WEBH5("/Yabo/help/index.html?pkg=\(GDAppConfig.gd_pkg)") }
/// 任务中心
public static var welfareCenter: String { GDToolBoxPlugins.shared.apiPlugin.WEBH5("/eggplant/welfare/index.html") }
public static var welfareCenter: String { GDToolBoxPlugins.shared.apiPlugin.WEBH5("/xs/welfare/index.html") }
}
public class GDFollowAnchorModel: BaseModel, GDLiveRoomType {
......
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "qq(点击状态).png",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "qq(未点击状态).png",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "朋友圈(点击状态).png",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "朋友圈(未点击状态透明度70%).png",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "微信(点击状态).png",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "微信(未点击状态).png",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "circle.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images": [
{
"idiom": "universal",
"scale": "1x"
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "alert_bg.png",
"idiom" : "universal",
"resizing" : {
"cap-insets" : {
"bottom" : 87,
"top" : 87
},
{
"filename": "alert_bg.png",
"idiom": "universal",
"scale": "2x"
"center" : {
"height" : 1,
"mode" : "tile"
},
{
"idiom": "universal",
"scale": "3x"
}
],
"info": {
"author": "xcode",
"version": 1
"mode" : "3-part-vertical"
},
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
}
\ No newline at end of file
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
......@@ -591,7 +591,7 @@ public class GDWebView: WKWebView, WKNavigationDelegate, WKScriptMessageHandler
public func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
var urlStr = navigationAction.request.url?.absoluteString ?? ""
urlStr.replacingOccurrences(of: "/eggplant/", with: "/xs/")
urlStr.replacingOccurrences(of: "/xs/", with: "/xs/")
if urlStr.contains("weixin://") {
if let url = URL(string: urlStr) {
......
......@@ -82,7 +82,7 @@ open class GDWebViewController: BaseViewController, GDWebViewControllerType {
} else if self.webView.url?.absoluteString.contains(GDToolBoxPlugins.shared.dataPlugin.zoneWebTurnplateUrl()?.value ?? "==不存在==") == true {
// 判定是否是转盘
GDToolBoxPlugins.shared.livePlugin.enableToShowInviteView()?.accept(false)
} else if self.webView.url?.absoluteString.contains("/eggplant/welfare/lottery.html") == true {
} else if self.webView.url?.absoluteString.contains("/xs/welfare/lottery.html") == true {
// 判定是否是转盘
GDToolBoxPlugins.shared.livePlugin.enableToShowInviteView()?.accept(false)
} else {
......@@ -147,7 +147,7 @@ open class GDWebViewController: BaseViewController, GDWebViewControllerType {
} else if self.webView.url?.absoluteString.contains(GDToolBoxPlugins.shared.dataPlugin.zoneWebTurnplateUrl()?.value ?? "==不存在==") == true {
// 判定是否是转盘
GDToolBoxPlugins.shared.livePlugin.enableToShowInviteView()?.accept(false)
} else if self.webView.url?.absoluteString.contains("/eggplant/welfare/lottery.html") == true {
} else if self.webView.url?.absoluteString.contains("/xs/welfare/lottery.html") == true {
// 判定是否是转盘
GDToolBoxPlugins.shared.livePlugin.enableToShowInviteView()?.accept(false)
} else {
......
......@@ -140,7 +140,9 @@ public extension UIImage {
return KingfisherManager.shared.cache.retrieveImageInDiskCache(forKey: GDToolBoxPlugins.shared.apiPlugin.CDN(path)) { result in
switch result {
case let .success(image):
completedHandler?(image)
DispatchQueue.main.async {
completedHandler?(image)
}
case .failure(_):
completedHandler?(nil)
}
......
......@@ -234,7 +234,8 @@ public class GDAlertView: BaseView {
y: 0,
width: 280,
height: 180))
// private let bgImageView = UIImageView(image: GDToolBoxBundle.imageNamed("alert_bg")?.resizableImage(withCapInsets: .init(top: 48, left: 24, bottom: 24, right: 24), resizingMode: .stretch))
private let bgImageView = UIImageView(image: GDToolBoxBundle.imageNamed("alert_bg")?.resizableImage(withCapInsets: .init(top: 48, left: 24, bottom: 24, right: 24), resizingMode: .stretch))
private let titleLabel = YYLabel(frame: .zero)
private let contentLabel = YYLabel(frame: .zero)
private let buttonBgView = UIView(frame: .zero)
......@@ -261,12 +262,13 @@ public class GDAlertView: BaseView {
bgView.layer.cornerRadius = 15
self.addSubview(bgView)
// bgImageView.contentMode = .scaleToFill
// bgView.addSubview(bgImageView)
bgImageView.contentMode = .scaleToFill
bgView.addSubview(bgImageView)
// bgImageView.snp.makeConstraints { make in
// make.edges.equalToSuperview()
// }
bgImageView.snp.makeConstraints { make in
make.left.top.equalToSuperview().offset(-2)
make.right.bottom.equalToSuperview().offset(2)
}
}
private func makeContentView() {
......
......@@ -10,8 +10,8 @@ import GDToolBox
struct GDChatMessageWebURL {
/// 送礼记录
static var bondsRecord: String { GDToolBoxPlugins.shared.apiPlugin.WEBH5("/eggplant/withdraw/bonds.html") }
static var bondsRecord: String { GDToolBoxPlugins.shared.apiPlugin.WEBH5("/xs/withdraw/bonds.html") }
/// 魅力富豪 战队榜单(type传1 魅力榜 2富豪榜 3战队榜 不传默认显示魅力榜
static var charmRichBoard: String { GDToolBoxPlugins.shared.apiPlugin.WEBH5("/eggplant/list/index.html") }
static var charmRichBoard: String { GDToolBoxPlugins.shared.apiPlugin.WEBH5("/xs/list/index.html") }
}
......@@ -551,7 +551,7 @@ public class GDDataManager: BaseViewModel {
// 过滤数据为空
guard broadcastArr.count > 0 else { return }
let timeInterval = broadcastArr.first?.inter?.doubleValue ?? 0
let timeInterval = Int(broadcastArr.first?.inter?.doubleValue ?? 0)
if timeInterval <= 0 {
return
......@@ -559,7 +559,7 @@ public class GDDataManager: BaseViewModel {
}
self.broadcastTimer?.dispose()
self.broadcastTimer = Observable<Int>.interval(.microseconds(Int(timeInterval * 1000)), scheduler: MainScheduler.instance).map { (_) in
self.broadcastTimer = Observable<Int>.interval(.seconds(timeInterval), scheduler: MainScheduler.instance).map { (_) in
if self.broadcastIndex >= broadcastArr.count {
self.broadcastIndex = 0
}
......
......@@ -21,7 +21,7 @@ class GDLiveFansGroupView: GDPublicLiveFansGroupView {
var isFromLive: Bool = true
var currentController: UIViewController?
var currentController: UIViewController? = UIViewController.topViewController()
// MARK: Private
var dragging = false
......@@ -145,7 +145,7 @@ class GDLiveFansGroupView: GDPublicLiveFansGroupView {
ownerFaceImageView.layer.masksToBounds = true
ownerFaceImageView.layer.cornerRadius = 30
ownerFaceImageView.layer.borderWidth = 2
ownerFaceImageView.layer.borderColor = UIColor.hexColor("8FF2F1", alpha: 0.94).cgColor
ownerFaceImageView.layer.borderColor = UIColor.gd_main.cgColor
headerView.addSubview(ownerFaceImageView)
groupNameLabel.font = .gd_pingfangBold(15)
......@@ -164,7 +164,7 @@ class GDLiveFansGroupView: GDPublicLiveFansGroupView {
renewBtn.layer.masksToBounds = true
renewBtn.layer.cornerRadius = 12.5
renewBtn.setTitle("续费", for: .normal)
renewBtn.backgroundColor = .hexColor("90FFFE")
renewBtn.backgroundColor = .gd_main
renewBtn.setTitleColor(.hexColor("005F5E"), for: .normal)
renewBtn.titleLabel?.font = .gd_pingfang(13)
renewBtn.isHidden = true
......
......@@ -18,7 +18,7 @@ class GDFriendListController: BaseViewController {
self.title = "好友"
self.view.backgroundColor = .white
self.showBackBtn = false
self.showBackBtn = (GDRouter.Tabbar?.hasType(.friend) ?? true) == false
_ = self.setupNavigationButton(on: .right, title: "好友申请", image: nil, clickBlock: {[weak self] in
let friendRequestVC = GDFriendsRequestController()
......
{
"images": [
{
"idiom": "universal",
"scale": "1x"
},
{
"filename": "icon_user_bind_success.png",
"idiom": "universal",
"scale": "2x"
},
{
"idiom": "universal",
"scale": "3x"
}
],
"info": {
"author": "xcode",
"version": 1
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "icon_user_bind_success.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
}
\ No newline at end of file
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
......@@ -29,13 +29,13 @@ struct GDPersonalWebURL {
static var livePrizePage: String { GDToolBoxPlugins.shared.apiPlugin.WEBH5("/xs/award/index.html")}
/// 任务中心说明
static var welfareCenterReadme: String { GDToolBoxPlugins.shared.apiPlugin.WEBH5("/eggplant/welfare/rule.html") }
static var welfareCenterReadme: String { GDToolBoxPlugins.shared.apiPlugin.WEBH5("/xs/welfare/rule.html") }
/// 抽奖中心
static let lotteryCenter = "/eggplant/welfare/lottery.html"
static let lotteryCenter = "/xs/welfare/lottery.html"
/// 道具商城页面
static var storeUrl: String { GDToolBoxPlugins.shared.apiPlugin.WEBH5("/eggplant/teamStore/index.html") }
static var storeUrl: String { GDToolBoxPlugins.shared.apiPlugin.WEBH5("/xs/teamStore/index.html") }
}
// 评分
......
......@@ -18,7 +18,7 @@ class GDDailySignResultCell: BaseCollectionViewCell {
override func makeUI() {
super.makeUI()
bgView.backgroundColor = .hexColor("BFFAF9")
bgView.backgroundColor = .gd_main.withAlphaComponent(0.6)
bgView.layer.cornerRadius = 5
bgView.layer.masksToBounds = true
self.contentView.addSubview(bgView)
......
......@@ -18,7 +18,7 @@ class GDDailySingAwardCell: BaseCollectionViewCell {
override func makeUI() {
super.makeUI()
bgView.backgroundColor = .hexColor("BFFAF9")
bgView.backgroundColor = .gd_main.withAlphaComponent(0.6)
bgView.layer.cornerRadius = 5
bgView.layer.masksToBounds = true
self.contentView.addSubview(bgView)
......@@ -50,7 +50,7 @@ class GDDailySingAwardCell: BaseCollectionViewCell {
make.top.equalTo(dayLabel.snp.bottom).offset(2)
make.left.equalToSuperview().offset(4)
make.right.equalToSuperview().offset(-4)
make.height.equalTo(1)
make.height.equalTo(0.5)
}
awardBgView.snp.makeConstraints { make in
......
......@@ -173,7 +173,7 @@ class GDDailySignView: BaseView {
recieveBgView.backgroundColor = .clear
bgView.addSubview(recieveBgView)
recieveTitleLabel.font = .gd_pingfangBold(16)
recieveTitleLabel.font = .gd_pingfangBold(20)
recieveTitleLabel.text = "签到成功,获得以下奖励"
recieveBgView.addSubview(recieveTitleLabel)
......@@ -203,7 +203,7 @@ class GDDailySignView: BaseView {
recieveBgView.addSubview(recieveBtn)
recieveBgView.snp.makeConstraints { make in
make.top.equalToSuperview().offset(104)
make.top.equalToSuperview().offset(25)
make.bottom.equalToSuperview().offset(-24)
make.width.equalTo(252)
make.centerX.equalToSuperview()
......@@ -215,7 +215,7 @@ class GDDailySignView: BaseView {
}
recieveSubtitleLabel.snp.makeConstraints { make in
make.top.equalTo(recieveTitleLabel.snp.bottom).offset(8)
make.top.equalTo(recieveTitleLabel.snp.bottom).offset(60)
make.centerX.equalToSuperview()
}
......
......@@ -172,7 +172,7 @@ class GDLiveAnchorStartView: BaseView {
self.addSubview(themeCollectionView)
themeBgView.snp.makeConstraints { (make) in
make.top.equalTo(self.closeBtn.snp.bottom).offset(20)
make.top.equalTo(self.closeBtn.snp.bottom).offset(40)
make.height.equalTo(50)
make.left.equalToSuperview().offset(32)
make.right.equalToSuperview().offset(-32)
......@@ -235,7 +235,6 @@ class GDLiveAnchorStartView: BaseView {
stackView.snp.makeConstraints { (make) in
make.bottom.equalTo(startBtn.snp.top).offset(-8)
// make.left.equalTo(startBtn.snp.left).offset(6)
make.centerX.equalToSuperview()
make.width.equalTo(CGFloat(width * CGFloat(shareArr.count)) + 24)
make.height.equalTo(width)
......@@ -302,8 +301,8 @@ class GDLiveAnchorStartView: BaseView {
self.addSubview(roomidLabel)
roomidLabel.snp.makeConstraints { (make) in
make.centerY.equalTo(closeBtn.snp.centerY)
make.left.equalToSuperview().offset(16)
make.top.equalTo(closeBtn.snp.bottom)
make.right.equalToSuperview().offset(-16)
}
GDRouter.UserRouter?.user
......
......@@ -52,6 +52,7 @@ class GDLiveAnchorStartViewModel: BaseViewModel {
completion?(true, false)
}
FTIndicator.dismissProgress()
} else {
completion?(true, false)
}
......
......@@ -587,7 +587,7 @@ class GDLiveFunctionView: BaseView {
guard let self = self else { return }
make.width.equalTo(80)
make.height.equalTo(80)
make.bottom.equalTo(self.wishListView.snp.top)
make.bottom.equalTo(self.activityWebView.snp.top)
make.centerX.equalTo(self.activityWebView)
}
......@@ -604,7 +604,7 @@ class GDLiveFunctionView: BaseView {
progressActivityView.snp.makeConstraints { (make) in
if GDLiveHelper.shared.role.value == .anchor {
make.bottom.equalTo(wishListView.snp.top)
make.bottom.equalTo(activityWebView.snp.top)
} else {
make.bottom.equalTo(watchTimeView.snp.top)
}
......@@ -887,6 +887,9 @@ class GDLiveFunctionView: BaseView {
if isValidString(url) == false {
realSpace = 0
}
self.activityWebView.snp.updateConstraints { (make) in
make.height.equalTo(self.progressActivityBottomSpace.value)
}
if hadWishList {
self.wishListView.snp.remakeConstraints { (make) in
......@@ -1208,7 +1211,7 @@ class GDLiveFunctionView: BaseView {
self.activityWebView.snp.remakeConstraints {[weak self] (make) in
guard let self = self else { return }
make.width.equalTo(90)
make.height.equalTo(220)
make.height.equalTo(self.progressActivityBottomSpace.value)
make.bottom.equalTo(self.chatInputView.snp.top).offset(-13)
make.right.equalToSuperview().offset(-8)
}
......@@ -1220,7 +1223,7 @@ class GDLiveFunctionView: BaseView {
self.activityWebView.snp.remakeConstraints {[weak self] (make) in
guard let self = self else { return }
make.width.equalTo(90)
make.height.equalTo(220)
make.height.equalTo(self.progressActivityBottomSpace.value)
if self.giftPanelView.activityWebView.isHidden == true {
make.bottom.equalToSuperview().offset(-8 - self.giftPanelView.bgView.height)
} else {
......@@ -1235,7 +1238,7 @@ class GDLiveFunctionView: BaseView {
self.activityWebView.snp.remakeConstraints {[weak self] (make) in
guard let self = self else { return }
make.width.equalTo(90)
make.height.equalTo(220)
make.height.equalTo(self.progressActivityBottomSpace.value)
if self.giftPanelView.activityWebView.isHidden == true {
make.bottom.equalToSuperview().offset(-8 - self.giftPanelView.bgView.height)
} else {
......@@ -1360,8 +1363,8 @@ class GDLiveFunctionView: BaseView {
activityWebView.snp.remakeConstraints { (make) in
make.width.equalTo(90)
make.height.equalTo(220)
make.bottom.equalTo(chatListView.snp.bottom).offset(-3)
make.height.equalTo(self.progressActivityBottomSpace.value)
make.bottom.equalTo(self.chatListView.snp.bottom).offset(-3)
make.right.equalToSuperview().offset(-8)
}
} else {
......@@ -1370,7 +1373,7 @@ class GDLiveFunctionView: BaseView {
activityWebView.snp.remakeConstraints { (make) in
make.width.equalTo(90)
make.height.equalTo(220)
make.height.equalTo(self.progressActivityBottomSpace.value)
make.bottom.equalTo(chatInputView.snp.top).offset(-13)
make.right.equalToSuperview().offset(-8)
}
......@@ -2309,7 +2312,7 @@ extension GDLiveFunctionView {
self.activityWebView.snp.remakeConstraints {[weak self] (make) in
guard let self = self else { return }
make.width.equalTo(90)
make.height.equalTo(220)
make.height.equalTo(self.progressActivityBottomSpace.value)
make.bottom.equalTo(self.chatInputView.snp.top).offset(-13)
make.right.equalToSuperview().offset(-8)
}
......@@ -2321,7 +2324,7 @@ extension GDLiveFunctionView {
self.activityWebView.snp.remakeConstraints {[weak self] (make) in
guard let self = self else { return }
make.width.equalTo(90)
make.height.equalTo(220)
make.height.equalTo(self.progressActivityBottomSpace.value)
if self.giftPanelView.activityWebView.isHidden == true {
make.bottom.equalToSuperview().offset(-8 - self.giftPanelView.bgView.height)
} else {
......@@ -2336,7 +2339,7 @@ extension GDLiveFunctionView {
self.activityWebView.snp.remakeConstraints {[weak self] (make) in
guard let self = self else { return }
make.width.equalTo(90)
make.height.equalTo(220)
make.height.equalTo(self.progressActivityBottomSpace.value)
if self.giftPanelView.activityWebView.isHidden == true {
make.bottom.equalToSuperview().offset(-8 - self.giftPanelView.bgView.height)
} else {
......
......@@ -82,13 +82,12 @@ class GDLiveChatModel: BaseModel {
let model = GDLiveChatModel(json: json)
model.tips = GDTipsModel(json: json)
//TODO:战队: added By Pidan
// if json["msgGroup"].isEmpty == false {
// let msgGroup = GDMessageGroupModel.createFrom(json["msgGroup"])
// if msgGroup.msgbody.count > 0 {
// model.msgGroup = msgGroup
// }
// }
if json["msgGroup"].isEmpty == false {
let msgGroup = GDMessageGroupModel.createFrom(json["msgGroup"])
if msgGroup.msgbody.count > 0 {
model.msgGroup = msgGroup
}
}
if model.msgType == .normal {
// 手动解析粉丝团数据
......@@ -410,7 +409,7 @@ class GDLiveChatModel: BaseModel {
/// 默认富文本
/// - Parameter content: 内容
/// - Returns: <#description#>
/// - Returns: 内容
private func createAttr(for content: String, defaultColor: UIColor = .white) -> NSAttributedString {
let attr = NSMutableAttributedString(string: content)
......@@ -468,6 +467,7 @@ class GDLiveChatModel: BaseModel {
let levelImageView = UIImageView()
levelImageView.contentMode = .scaleAspectFit
levelImageView.size = CGSize(width: levelImageWidth, height: levelImageWidth)
levelImageView.image = levelModel.levelImage.value
levelImageView.setWebImage(levelModel.icon)
let levelAttachment = NSAttributedString.attachmentString(withContent: levelImageView, contentMode: .scaleAspectFit, attachmentSize: levelImageView.size, alignTo: font, alignment: .center)
......@@ -637,8 +637,7 @@ struct GDLiveChatSocketModel: GDSocketModelType {
class GDMessageGroupModel: BaseModel, NetworkModelType {
//TODO:战队: added By Pidan
// var msgbody : [GDMessageBodyModel] = []
var msgbody : [GDMessageBodyModel] = []
var msgid : String?
var time : String?
var type : String?
......@@ -651,39 +650,37 @@ class GDMessageGroupModel: BaseModel, NetworkModelType {
model.msgid = json["msgid"].stringValue
model.time = json["time"].stringValue
model.type = json["type"].stringValue
//TODO:战队: added By Pidan
// model.msgbody = json["msgbody"].arrayValue.map({ msgbodyJson in
// GDMessageBodyModel.createFrom(msgbodyJson)
// })
model.msgbody = json["msgbody"].arrayValue.map({ msgbodyJson in
GDMessageBodyModel.createFrom(msgbodyJson)
})
return model as! Self
}
func parseAttr() -> NSAttributedString {
let attr = NSMutableAttributedString(string: "")
//TODO:战队: added By Pidan
// for body in msgbody {
// var color: UIColor = .white
//
// let colorArr = body.color?.components(separatedBy: ",").filter({ isValidString($0) }) ?? []
//
// if colorArr.count == 0 {
// let bodyAttr = createAttr(for: body.content ?? "", defaultColor: color)
// attr.append(bodyAttr)
// } else if colorArr.count == 1 {
// color = .hexColor(colorArr.first ?? "")
// let bodyAttr = createAttr(for: body.content ?? "", defaultColor: color)
// attr.append(bodyAttr)
// } else {
// let gradientLabel = createGradientLabel(for: body.content ?? "", colorArr: colorArr)
// let gradientAttr = NSAttributedString.attachmentString(withContent: gradientLabel,
// contentMode: .scaleAspectFit,
// attachmentSize: gradientLabel.size,
// alignTo: font,
// alignment: .center)
// attr.append(gradientAttr)
// }
// }
for body in msgbody {
var color: UIColor = .white
let colorArr = body.color?.components(separatedBy: ",").filter({ isValidString($0) }) ?? []
if colorArr.count == 0 {
let bodyAttr = createAttr(for: body.content ?? "", defaultColor: color)
attr.append(bodyAttr)
} else if colorArr.count == 1 {
color = .hexColor(colorArr.first ?? "")
let bodyAttr = createAttr(for: body.content ?? "", defaultColor: color)
attr.append(bodyAttr)
} else {
let gradientLabel = createGradientLabel(for: body.content ?? "", colorArr: colorArr)
let gradientAttr = NSAttributedString.attachmentString(withContent: gradientLabel,
contentMode: .scaleAspectFit,
attachmentSize: gradientLabel.size,
alignTo: font,
alignment: .center)
attr.append(gradientAttr)
}
}
return attr
}
......@@ -744,3 +741,31 @@ class GDMessageGroupModel: BaseModel, NetworkModelType {
}
}
class GDMessageBodyModel: BaseModel, NetworkModelType {
//TODO:战队: added By Pidan
// var clickdata : TLFightTeamMessageClickDataModel?
var clicktype : String?
var color : String?
var content : String?
var tips : String?
var type : Int = 0
var background: String?
var data: JSON? = nil
static func createFrom(_ json: JSON) -> Self {
let model = GDMessageBodyModel()
//TODO:战队: added By Pidan
// model.clickdata = TLFightTeamMessageClickDataModel.createFrom(json["clickdata"])
model.clicktype = json["clicktype"].stringValue
model.color = json["color"].stringValue
model.content = json["content"].stringValue
model.tips = json["tips"].stringValue
model.type = json["type"].intValue
model.background = json["background"].stringValue
model.data = json["data"]
return model as! Self
}
}
......@@ -102,7 +102,7 @@ extension NSMutableAttributedString {
switch type {
case "newer":
let newerAttachment = NSAttributedString.attachmentString(withContent: GDToolBoxBundle.imageNamed("icon_newer"), contentMode: .scaleAspectFit, attachmentSize: CGSize(width: newerIconWidth, height: newerIconWidth), alignTo: font, alignment: .center)
let newerAttachment = NSAttributedString.attachmentString(withContent: GDShowRoomBundle.imageNamed("icon_newer"), contentMode: .scaleAspectFit, attachmentSize: CGSize(width: newerIconWidth, height: newerIconWidth), alignTo: font, alignment: .center)
// self.insert(newerAttachment, at: index)
insertArr.append(.init(insertStyle: .insert, attachment: newerAttachment, range: .init(location: index, length: 0)))
case "hide":
......@@ -110,11 +110,11 @@ extension NSMutableAttributedString {
// self.replaceCharacters(in: .init(location: index, length: 1), with: hidemanAttachment)
insertArr.append(.init(insertStyle: .replace, attachment: hidemanAttachment, range: .init(location: index, length: 1)))
case "niceuid":
let niceuidAttachment = NSAttributedString.attachmentString(withContent: GDToolBoxBundle.imageNamed("icon_niceid_special"), contentMode: .scaleAspectFit, attachmentSize: CGSize(width: levelImageWidth, height: levelImageWidth), alignTo: font, alignment: .bottom)
let niceuidAttachment = NSAttributedString.attachmentString(withContent: GDShowRoomBundle.imageNamed("icon_niceid_special"), contentMode: .scaleAspectFit, attachmentSize: CGSize(width: levelImageWidth, height: levelImageWidth), alignTo: font, alignment: .bottom)
self.insert(niceuidAttachment, at: index)
insertArr.append(.init(insertStyle: .insert, attachment: niceuidAttachment, range: .init(location: index, length: 0)))
case "guardian":
let guardianAttachment = NSAttributedString.attachmentString(withContent: GDToolBoxBundle.imageNamed("icon_live_guard_icon"), contentMode: .scaleAspectFit, attachmentSize: CGSize(width: levelImageWidth * 1.7, height: levelImageWidth * 1.2), alignTo: font, alignment: .center)
let guardianAttachment = NSAttributedString.attachmentString(withContent: GDShowRoomBundle.imageNamed("icon_live_guard_icon"), contentMode: .scaleAspectFit, attachmentSize: CGSize(width: levelImageWidth * 1.7, height: levelImageWidth * 1.2), alignTo: font, alignment: .center)
insertArr.append(.init(insertStyle: .insert, attachment: guardianAttachment, range: .init(location: index, length: 0)))
default:
/// 默认需要解析出数据
......@@ -133,11 +133,11 @@ extension NSMutableAttributedString {
if let uidType = json["data"]["uidtype"].string {
if uidType.intValue > 0 {
let niceIdImageView = UIImageView(image: GDToolBoxBundle.imageNamed("zone_info_niceid_icon"))
let niceIdImageView = UIImageView(image: GDShowRoomBundle.imageNamed("zone_info_niceid_icon"))
niceIdImageView.contentMode = .scaleAspectFit
// 靓号
if let iconUrl = GDRouter.DataRouter?.specialIDData[uidType]?.icon {
niceIdImageView.setWebImage(iconUrl, placeholderImage: GDToolBoxBundle.imageNamed("zone_info_niceid_icon"))
niceIdImageView.setWebImage(iconUrl, placeholderImage: GDShowRoomBundle.imageNamed("zone_info_niceid_icon"))
}
let niceidAttr = NSMutableAttributedString.attachmentString(withContent: niceIdImageView, contentMode: .scaleAspectFit, attachmentSize: .init(width: niceIdImageWidth, height: niceIdImageWidth), alignTo: font, alignment: .bottom)
insertArr.append(.init(insertStyle: .insert, attachment: niceidAttr, range: .init(location: index, length: 0)))
......@@ -291,6 +291,7 @@ extension NSMutableAttributedString {
let levelImageView = UIImageView()
levelImageView.size = imageSize
levelImageView.contentMode = .scaleAspectFit
levelImageView.image = levelModel.levelImage.value
levelImageView.setWebImage(levelModel.icon ?? "")
let levelAttachment = NSAttributedString.attachmentString(withContent: levelImageView, contentMode: .scaleAspectFit, attachmentSize: imageSize, alignTo: font, alignment: .center)
self.insert(levelAttachment, at: result.range.location)
......
......@@ -147,41 +147,41 @@ class GDLiveChatInputView: BaseView {
}
case .audienceMore:
break
// // 展示任务中心红点
// let unreadView = UIView(frame: .zero)
// unreadView.backgroundColor = .red
// unreadView.layer.masksToBounds = true
// unreadView.layer.cornerRadius = 4
// btn.addSubview(unreadView)
//
// unreadView.snp.makeConstraints { make in
// make.width.height.equalTo(8)
// make.top.equalToSuperview()
// make.right.equalToSuperview()
// }
// 展示任务中心红点
let unreadView = UIView(frame: .zero)
unreadView.backgroundColor = .red
unreadView.layer.masksToBounds = true
unreadView.layer.cornerRadius = 4
btn.addSubview(unreadView)
unreadView.snp.makeConstraints { make in
make.width.height.equalTo(8)
make.top.equalToSuperview()
make.right.equalToSuperview()
}
//TODO:战队: added By Pidan
// func refreshFightTeamUnread(for unreadView: UIView) {
// if GDLiveHelper.shared.liveConfig.value.liveMoreButon.filter({ $0.isRead.value == false }).count <= 0 && GDRouter.UserRouter?.fightTeamCenter.hadUnreadMsg.value == false && GDRouter.UserRouter?.fightTeamCenter.hadFightTeamInvite.value == false && GDRouter.UserRouter?.fightTeamCenter.applyCount.value <= 0 && GDRouter.UserRouter?.rewardCount.value <= 0 {
// unreadView.isHidden = true
// } else {
// unreadView.isHidden = false
// }
// }
func refreshFightTeamUnread(for unreadView: UIView) {
if GDLiveHelper.shared.liveConfig.value.liveMoreButon.filter({ $0.isRead.value == false }).count <= 0
//TODO:战队: added By Pidan
// && GDRouter.UserRouter?.fightTeamCenter.hadUnreadMsg.value == false && GDRouter.UserRouter?.fightTeamCenter.hadFightTeamInvite.value == false && GDRouter.UserRouter?.fightTeamCenter.applyCount.value <= 0
&& (GDRouter.UserRouter?.rewardCount.value ?? 0) <= 0 {
unreadView.isHidden = true
} else {
unreadView.isHidden = false
}
}
refreshFightTeamUnread(for: unreadView)
GDRouter.UserRouter?.rewardCount.subscribe(onNext: { _ in
refreshFightTeamUnread(for: unreadView)
}).disposed(by: disposeBag)
GDLiveHelper.shared.liveButtonStateChange.subscribe(onNext: { _ in
refreshFightTeamUnread(for: unreadView)
}).disposed(by: disposeBag)
//TODO:战队: added By Pidan
// refreshFightTeamUnread(for: unreadView)
//
// GDRouter.UserRouter?.rewardCount.subscribe(onNext: { _ in
// refreshFightTeamUnread(for: unreadView)
// }).disposed(by: disposeBag)
//
// GDLiveHelper.shared.liveButtonStateChange.subscribe(onNext: { _ in
// refreshFightTeamUnread(for: unreadView)
// }).disposed(by: disposeBag)
//
// GDRouter.UserRouter?.fightTeamCenter.hadUnreadMsg.subscribe(onNext: { _ in
// refreshFightTeamUnread(for: unreadView)
// }).disposed(by: disposeBag)
......@@ -195,35 +195,37 @@ class GDLiveChatInputView: BaseView {
// }).disposed(by: disposeBag)
case .anchorMore:
break
// // 展示任务中心红点
// let unreadView = UIView(frame: .zero)
// unreadView.backgroundColor = .red
// unreadView.layer.masksToBounds = true
// unreadView.layer.cornerRadius = 4
// btn.addSubview(unreadView)
//
// unreadView.snp.makeConstraints { make in
// make.width.height.equalTo(8)
// make.top.equalToSuperview()
// make.right.equalToSuperview()
// }
// 展示任务中心红点
let unreadView = UIView(frame: .zero)
unreadView.backgroundColor = .red
unreadView.layer.masksToBounds = true
unreadView.layer.cornerRadius = 4
btn.addSubview(unreadView)
unreadView.snp.makeConstraints { make in
make.width.height.equalTo(8)
make.top.equalToSuperview()
make.right.equalToSuperview()
}
func refreshFightTeamUnread(for unreadView: UIView) {
if GDLiveHelper.shared.liveConfig.value.liveMoreButon.filter({ $0.isRead.value == false }).count <= 0
//TODO:战队: added By Pidan
// && GDRouter.UserRouter?.fightTeamCenter.hadUnreadMsg.value == false && GDRouter.UserRouter?.fightTeamCenter.hadFightTeamInvite.value == false && GDRouter.UserRouter?.fightTeamCenter.applyCount.value <= 0
{
unreadView.isHidden = true
} else {
unreadView.isHidden = false
}
}
refreshFightTeamUnread(for: unreadView)
GDLiveHelper.shared.liveButtonStateChange.subscribe(onNext: { _ in
refreshFightTeamUnread(for: unreadView)
}).disposed(by: disposeBag)
//TODO:战队: added By Pidan
// func refreshFightTeamUnread(for unreadView: UIView) {
// if GDLiveHelper.shared.liveConfig.value.liveMoreButon.filter({ $0.isRead.value == false }).count <= 0 && GDRouter.UserRouter?.fightTeamCenter.hadUnreadMsg.value == false && GDRouter.UserRouter?.fightTeamCenter.hadFightTeamInvite.value == false && GDRouter.UserRouter?.fightTeamCenter.applyCount.value <= 0 {
// unreadView.isHidden = true
// } else {
// unreadView.isHidden = false
// }
// }
//
// refreshFightTeamUnread(for: unreadView)
//
// GDLiveHelper.shared.liveButtonStateChange.subscribe(onNext: { _ in
// refreshFightTeamUnread(for: unreadView)
// }).disposed(by: disposeBag)
//
// GDRouter.UserRouter?.fightTeamCenter.hadUnreadMsg.subscribe(onNext: { _ in
// refreshFightTeamUnread(for: unreadView)
// }).disposed(by: disposeBag)
......
......@@ -249,6 +249,7 @@ class GDDrawGiftEffectView: BaseView {
let levelImageView = UIImageView()
levelImageView.contentMode = .scaleAspectFit
levelImageView.size = CGSize(width: levelImageWidth, height: levelImageWidth)
levelImageView.image = levelModel.levelImage.value
levelImageView.setWebImage(levelModel.icon)
let levelAttachment = NSAttributedString.attachmentString(withContent: levelImageView,
......
......@@ -280,6 +280,7 @@ class GDWebpGiftEffectView: BaseView {
let levelImageView = UIImageView()
levelImageView.contentMode = .scaleAspectFit
levelImageView.size = CGSize(width: levelImageWidth, height: levelImageWidth)
levelImageView.image = levelModel.levelImage.value
levelImageView.setWebImage(levelModel.icon)
let levelAttachment = NSAttributedString.attachmentString(withContent: levelImageView,
......
......@@ -156,10 +156,12 @@ class GDLiveRichLevelUpView: BaseView {
faceImageView.setWebImage(model.face)
if let levelModel = GDRouter.DataRouter?.levelDict[model.oldlevel ?? ""] {
oldLevelIconImageView.image = levelModel.levelImage.value
oldLevelIconImageView.setWebImage(levelModel.icon)
}
if let levelModel = GDRouter.DataRouter?.levelDict[model.level ?? ""] {
newLevelIconImageView.image = levelModel.levelImage.value
newLevelIconImageView.setWebImage(levelModel.icon)
nicknameLabel.textColor = .hexColor(levelModel.color ?? "")
......
......@@ -93,7 +93,7 @@ class GDLiveGuardianSetupView: BaseView {
bgView.layer.mask = maskLayer
bgView.layer.borderWidth = 1
bgView.layer.borderColor = UIColor.hexColor("30f0f0", alpha: 0.8).cgColor
bgView.layer.borderColor = UIColor.gd_main.withAlphaComponent(0.8).cgColor
// 添加模糊层
let blurView = UIVisualEffectView(effect: UIBlurEffect(style: .dark))
......
......@@ -60,7 +60,7 @@ class GDLiveOnlineUserCell: UICollectionViewCell {
makeDayGuardView()
// makeGuardianCrown()
makeGuardianCrown()
makeDayBoardRankNumBtn()
......@@ -162,19 +162,19 @@ class GDLiveOnlineUserCell: UICollectionViewCell {
}
}
// private func makeGuardianCrown() {
//
// self.guardianCrownImageView.contentMode = .scaleAspectFit
// self.contentView.addSubview(self.guardianCrownImageView)
//
// guardianCrownImageView.snp.makeConstraints { make in
// make.centerX.equalTo(faceImageView.snp.centerX).offset(-0)
// make.centerY.equalTo(faceImageView.snp.centerY).offset(0)
// make.width.equalTo(faceImageView.snp.width).multipliedBy(1.5)
// make.height.equalTo(dayGuardCrowdImageView.snp.width).multipliedBy(1.4)
// }
//
// }
private func makeGuardianCrown() {
self.guardianCrownImageView.contentMode = .scaleAspectFit
self.contentView.addSubview(self.guardianCrownImageView)
guardianCrownImageView.snp.makeConstraints { make in
make.centerX.equalTo(faceImageView.snp.centerX).offset(-0)
make.centerY.equalTo(faceImageView.snp.centerY).offset(0)
make.width.equalTo(faceImageView.snp.width).multipliedBy(1.5)
make.height.equalTo(dayGuardCrowdImageView.snp.width).multipliedBy(1.4)
}
}
// MARK: Data
var model: GDLiveUserModel?
......@@ -212,6 +212,7 @@ class GDLiveOnlineUserCell: UICollectionViewCell {
levelImageView.cancelDownload()
levelImageView.image = nil
if let levelModel = GDRouter.DataRouter?.levelDict[model.level ?? "0"] {
levelImageView.image = levelModel.levelImage.value
levelImageView.setWebImage(levelModel.icon)
}
......
......@@ -29,12 +29,12 @@ class GDLiveTimeDetailCell: BaseCollectionViewCell {
self.contentView.addSubview(clockIconView)
timeLabel.font = .gd_pingfang(9)
timeLabel.textColor = .hexColor("7FFFF4")
timeLabel.textColor = .white
timeLabel.textAlignment = .center
self.contentView.addSubview(timeLabel)
bondsLabel.font = .gd_pingfang(10)
bondsLabel.textColor = .hexColor("02ABA4")
bondsLabel.textColor = .white
self.contentView.addSubview(bondsLabel)
faceImageView.layer.borderWidth = 1
......
......@@ -24,29 +24,29 @@ class GDLiveTimeView: BaseView {
self.addSubview(bgImageView)
minLabel.textColor = .hexColor("7FFFF4")
minLabel.textColor = .white
minLabel.font = .gd_pingfang(10)
minLabel.text = "00"
self.addSubview(minLabel)
let label1 = UILabel(frame: .zero)
label1.text = ":"
label1.textColor = .hexColor("7FFFF4")
label1.textColor = .white
label1.font = .gd_pingfang(10)
self.addSubview(label1)
let label2 = UILabel(frame: .zero)
label2.text = ":"
label2.textColor = .hexColor("7FFFF4")
label2.textColor = .white
label2.font = .gd_pingfang(10)
self.addSubview(label2)
hourLabel.textColor = .hexColor("7FFFF4")
hourLabel.textColor = .white
hourLabel.font = .gd_pingfang(10)
hourLabel.text = "00"
self.addSubview(hourLabel)
secLabel.textColor = .hexColor("7FFFF4")
secLabel.textColor = .white
secLabel.font = .gd_pingfang(10)
secLabel.text = "00"
self.addSubview(secLabel)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment