Files
2026-01-12 17:52:15 +08:00

79 lines
2.5 KiB
Swift

import AtomicXCore
import DCloudUTSFoundation
import RTCRoomEngine
import UIKit
public class LiveRenderView: UIView {
private let cornerRadius: CGFloat = 18 //
private var nativeViewType = CoreViewType.playView
// MARK: -
override init(frame: CGRect = .zero) {
super.init(frame: frame)
commonInit()
}
required init?(coder: NSCoder) {
super.init(coder: coder)
commonInit()
}
private func commonInit() {
self.layer.cornerRadius = cornerRadius
self.layer.masksToBounds = true
self.layer.shouldRasterize = true
self.layer.rasterizationScale = UIScreen.main.scale
}
//
public override func layoutSubviews() {
super.layoutSubviews()
self.layer.cornerRadius = cornerRadius
self.layer.masksToBounds = true
}
public func updateViewType(_ viewType: Any) {
guard viewType != nil else {
return
}
guard viewType is String else {
return
}
if let viewTypeStr = viewType as? String {
if viewTypeStr == "PUSH_VIEW" {
nativeViewType = CoreViewType.pushView
}
}
}
// MARK: -
public func updateRenderView(_ liveID: Any) {
console.log("iOS-LiveRenderView, updateRenderView, liveID: ", liveID)
guard liveID != nil else {
console.log("iOS-LiveRenderView, updateRenderView: liveID is empty")
return
}
guard liveID is String else {
console.log("iOS-LiveRenderView, updateRenderView: liveID is not String")
return
}
subviews.forEach { $0.removeFromSuperview() }
console.log("iOS-LiveRenderView, updateRenderView, viewType: ", self.nativeViewType)
if let liveIDStr = liveID as? String , !liveIDStr.isEmpty {
let renderView = LiveCoreView(viewType: self.nativeViewType, frame : .zero)
renderView.setLiveID(liveIDStr)
renderView.translatesAutoresizingMaskIntoConstraints = false
addSubview(renderView)
NSLayoutConstraint.activate([
renderView.leadingAnchor.constraint(equalTo: leadingAnchor),
renderView.trailingAnchor.constraint(equalTo: trailingAnchor),
renderView.topAnchor.constraint(equalTo: topAnchor),
renderView.bottomAnchor.constraint(equalTo: bottomAnchor),
])
}
}
}