mirror of
https://github.com/Finb/Bark.git
synced 2025-12-08 21:36:01 +00:00
调整主页布局代码
This commit is contained in:
parent
b8982f2060
commit
21a449a899
@ -59,3 +59,6 @@ iCloudSync = "Notification messages will be synced when iCloud is available";
|
||||
|
||||
defaultArchiveSettings = "Archive by default";
|
||||
archiveNote = "When the isArchive parameter is not specified in the push request URL, whether to archive the notification message will be decided according to this setting";
|
||||
|
||||
archiveNotificationMessageTitle = "Archive notification message";
|
||||
archiveNotificationMessage = "Notification message will be archived when isArchive value is 1, and will not be archived when the value is 0.\nIf the isArchive parameter is not specified, the notification message will be archived according to the default settings";
|
||||
|
||||
@ -59,3 +59,6 @@ iCloudSync = "通知消息将在iCloud可用时同步";
|
||||
|
||||
defaultArchiveSettings = "默认保存";
|
||||
archiveNote = "当推送请求URL没有指定 isArchive 参数时,将按照此设置来决定是否保存通知消息";
|
||||
|
||||
archiveNotificationMessageTitle = "自动保存通知消息";
|
||||
archiveNotificationMessage = "当设置 isArchive 值为 1 时,则会自动保存这条推送消息,设置为其他值时,则不会保存。\n如果不指定 isArchive 参数时,则按照默认设置保存消息,可以在 消息->设置->默认保存消息 更改默认保存设置";
|
||||
|
||||
@ -37,6 +37,11 @@ class HomeViewController: BaseViewController {
|
||||
title: NSLocalizedString("CustomedNotificationTitle"),
|
||||
body: NSLocalizedString("CustomedNotificationContent"),
|
||||
notice: NSLocalizedString("Notice2")),
|
||||
PreviewModel(
|
||||
body: NSLocalizedString("archiveNotificationMessageTitle"),
|
||||
notice: NSLocalizedString("archiveNotificationMessage"),
|
||||
queryParameter: "isArchive=1"
|
||||
),
|
||||
PreviewModel(
|
||||
body: "URL Test",
|
||||
notice: NSLocalizedString("urlParameter"),
|
||||
@ -114,28 +119,13 @@ class HomeViewController: BaseViewController {
|
||||
}
|
||||
}
|
||||
|
||||
let rowheight:[CGFloat] = {
|
||||
let screenWidth = UIScreen.main.bounds.width
|
||||
if screenWidth <= 320 {
|
||||
return [170,170,170,320,170]
|
||||
}
|
||||
if screenWidth <= 375 {
|
||||
return [205,205,205,380,205]
|
||||
}
|
||||
if screenWidth <= 414 {
|
||||
return [195,195,195,390,195]
|
||||
}
|
||||
return [205,205,205,380,205]
|
||||
}()
|
||||
}
|
||||
|
||||
extension HomeViewController : UITableViewDataSource, UITableViewDelegate {
|
||||
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
|
||||
return dataSource.count
|
||||
}
|
||||
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
|
||||
return rowheight[indexPath.row]
|
||||
}
|
||||
|
||||
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
|
||||
if let cell = tableView.dequeueReusableCell(withIdentifier: "\(indexPath.row)") as? PreviewCardCell{
|
||||
cell.bind(model: dataSource[indexPath.row])
|
||||
|
||||
@ -31,7 +31,21 @@ class PreviewCardCell: UITableViewCell {
|
||||
|
||||
let previewButton = IconButton(image: Icon.cm.skipForward, tintColor: Color.grey.base)
|
||||
let copyButton = IconButton(image: UIImage(named: "baseline_file_copy_white_24pt"), tintColor: Color.grey.base)
|
||||
let toolbar = Toolbar()
|
||||
|
||||
let titleLabel: UILabel = {
|
||||
let label = UILabel()
|
||||
label.font = RobotoFont.regular(with: 14)
|
||||
label.textColor = Color.grey.darken1
|
||||
label.numberOfLines = 0
|
||||
return label
|
||||
}()
|
||||
let bodyLabel: UILabel = {
|
||||
let label = UILabel()
|
||||
label.font = RobotoFont.regular(with: 14)
|
||||
label.textColor = Color.grey.base
|
||||
label.numberOfLines = 0
|
||||
return label
|
||||
}()
|
||||
|
||||
let noticeLabel: UILabel = {
|
||||
let label = UILabel()
|
||||
@ -40,15 +54,25 @@ class PreviewCardCell: UITableViewCell {
|
||||
label.numberOfLines = 0
|
||||
return label
|
||||
}()
|
||||
|
||||
let bottomBar = Bar()
|
||||
|
||||
let card = PresenterCard()
|
||||
let contentImageView:UIImageView = {
|
||||
let imageView = UIImageView()
|
||||
imageView.backgroundColor = UIColor.red
|
||||
imageView.contentMode = .scaleAspectFit
|
||||
return imageView
|
||||
}()
|
||||
let card:UIView = {
|
||||
let view = UIView()
|
||||
view.backgroundColor = Color.white
|
||||
view.layer.cornerRadius = 2
|
||||
view.clipsToBounds = true
|
||||
return view
|
||||
}()
|
||||
|
||||
var copyHandler: (() -> Void)?
|
||||
|
||||
let contentLabel: UILabel = {
|
||||
let label = UILabel()
|
||||
label.lineBreakMode = .byCharWrapping
|
||||
label.numberOfLines = 0
|
||||
label.font = RobotoFont.regular(with: 14)
|
||||
return label
|
||||
@ -59,44 +83,50 @@ class PreviewCardCell: UITableViewCell {
|
||||
self.selectionStyle = .none
|
||||
self.backgroundColor = Color.grey.lighten3
|
||||
|
||||
self.transition([ .scale(0.75) , .opacity(0)] )
|
||||
addSubview(card)
|
||||
card.snp.makeConstraints { (make) in
|
||||
make.left.top.equalToSuperview().offset(10)
|
||||
make.right.equalToSuperview().offset(-10)
|
||||
make.bottom.equalToSuperview()
|
||||
}
|
||||
|
||||
self.toolbar.rightViews = [copyButton,previewButton]
|
||||
self.bottomBar.leftViews = [noticeLabel]
|
||||
card.addSubview(titleLabel)
|
||||
card.addSubview(bodyLabel)
|
||||
card.addSubview(copyButton)
|
||||
card.addSubview(previewButton)
|
||||
card.addSubview(contentLabel)
|
||||
card.addSubview(contentImageView)
|
||||
card.addSubview(noticeLabel)
|
||||
|
||||
bodyLabel.snp.makeConstraints { (make) in
|
||||
make.left.equalTo(titleLabel)
|
||||
make.top.equalTo(titleLabel.snp.bottom).offset(5)
|
||||
}
|
||||
previewButton.snp.makeConstraints { (make) in
|
||||
make.right.equalToSuperview().offset(-10)
|
||||
make.centerY.equalTo(card.snp.top).offset(40)
|
||||
make.width.height.equalTo(40)
|
||||
}
|
||||
copyButton.snp.makeConstraints { (make) in
|
||||
make.right.equalTo(previewButton.snp.left).offset(-10)
|
||||
make.centerY.equalTo(previewButton)
|
||||
make.width.height.equalTo(40)
|
||||
}
|
||||
noticeLabel.snp.makeConstraints { (make) in
|
||||
make.left.equalTo(10)
|
||||
make.right.equalTo(-10)
|
||||
make.top.equalTo(contentLabel.snp.bottom).offset(20)
|
||||
make.bottom.equalToSuperview().offset(-15)
|
||||
}
|
||||
|
||||
toolbar.titleLabel.font = RobotoFont.regular(with: 14)
|
||||
toolbar.titleLabel.textColor = Color.grey.darken4
|
||||
toolbar.titleLabel.textAlignment = .left
|
||||
|
||||
toolbar.detailLabel.textAlignment = .left
|
||||
toolbar.detailLabel.textColor = Color.grey.darken2
|
||||
|
||||
card.toolbar = toolbar
|
||||
card.toolbarEdgeInsetsPreset = .square3
|
||||
card.toolbarEdgeInsets.bottom = 0
|
||||
card.toolbarEdgeInsets.right = 8
|
||||
|
||||
card.contentView = contentLabel
|
||||
card.contentViewEdgeInsetsPreset = .wideRectangle3
|
||||
|
||||
card.bottomBar = bottomBar
|
||||
card.bottomBarEdgeInsetsPreset = .wideRectangle2
|
||||
|
||||
|
||||
self.bind(model: model)
|
||||
self.contentView.layout(card).leftRight(left: 10, right: 10).center()
|
||||
|
||||
|
||||
previewButton.addTarget(self, action: #selector(preview), for: .touchUpInside)
|
||||
copyButton.addTarget(self, action: #selector(copyURL), for: .touchUpInside)
|
||||
|
||||
//小屏幕兼容
|
||||
if UIScreen.main.bounds.size.width <= 320 {
|
||||
card.contentViewEdgeInsetsPreset = .wideRectangle2
|
||||
card.bottomBarEdgeInsetsPreset = .wideRectangle1
|
||||
toolbar.titleLabel.font = RobotoFont.regular(with: 12)
|
||||
toolbar.detailLabel.font = RobotoFont.regular(with: 10)
|
||||
contentLabel.font = RobotoFont.regular(with: 10)
|
||||
noticeLabel.font = RobotoFont.regular(with: 10)
|
||||
}
|
||||
}
|
||||
|
||||
@objc func copyURL(){
|
||||
@ -136,11 +166,7 @@ class PreviewCardCell: UITableViewCell {
|
||||
]))
|
||||
|
||||
if let title = model.title {
|
||||
attrStr.append(NSAttributedString(string: "/\(title)", attributes: [
|
||||
NSAttributedString.Key.foregroundColor: Color.grey.darken1,
|
||||
NSAttributedString.Key.font : RobotoFont.regular(with: fontSize)
|
||||
]))
|
||||
self.toolbar.title = title
|
||||
self.titleLabel.text = title
|
||||
}
|
||||
if let body = model.body {
|
||||
attrStr.append(NSAttributedString(string: "/\(body)", attributes: [
|
||||
@ -148,10 +174,22 @@ class PreviewCardCell: UITableViewCell {
|
||||
NSAttributedString.Key.font : RobotoFont.regular(with: fontSize)
|
||||
]))
|
||||
if model.title == nil {
|
||||
self.toolbar.title = body
|
||||
self.titleLabel.text = body
|
||||
}
|
||||
else{
|
||||
self.toolbar.detail = body
|
||||
self.bodyLabel.text = body
|
||||
}
|
||||
}
|
||||
if self.bodyLabel.text?.count ?? 0 <= 0 {
|
||||
titleLabel.snp.remakeConstraints { (make) in
|
||||
make.left.equalToSuperview().offset(15)
|
||||
make.centerY.equalTo(copyButton)
|
||||
}
|
||||
}
|
||||
else{
|
||||
titleLabel.snp.remakeConstraints { (make) in
|
||||
make.left.equalToSuperview().offset(15)
|
||||
make.top.equalToSuperview().offset(20)
|
||||
}
|
||||
}
|
||||
if let queryParameter = model.queryParameter {
|
||||
@ -164,15 +202,27 @@ class PreviewCardCell: UITableViewCell {
|
||||
self.noticeLabel.text = model.notice
|
||||
|
||||
if let image = model.image {
|
||||
let imageView = UIImageView(image: image)
|
||||
imageView.backgroundColor = UIColor.red
|
||||
imageView.contentMode = .scaleAspectFit
|
||||
self.contentImageView.image = image
|
||||
let width = UIScreen.main.bounds.size.width - 20
|
||||
imageView.frame = CGRect(x: 0, y: 0, width: 0, height: width / image.width * image.height)
|
||||
let height = width / image.width * image.height
|
||||
|
||||
|
||||
card.presenterView = imageView
|
||||
card.presenterViewEdgeInsetsPreset = .none
|
||||
contentImageView.snp.remakeConstraints { (make) in
|
||||
make.left.right.equalToSuperview()
|
||||
make.top.equalTo(previewButton.snp.bottom).offset(15)
|
||||
make.height.equalTo(height)
|
||||
}
|
||||
contentLabel.snp.remakeConstraints { (make) in
|
||||
make.left.equalToSuperview().offset(12)
|
||||
make.right.equalToSuperview().offset(-12)
|
||||
make.top.equalTo(contentImageView.snp.bottom).offset(15)
|
||||
}
|
||||
}
|
||||
else{
|
||||
contentLabel.snp.remakeConstraints { (make) in
|
||||
make.left.equalToSuperview().offset(12)
|
||||
make.right.equalToSuperview().offset(-12)
|
||||
make.top.equalTo(previewButton.snp.bottom).offset(20)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user