fix: 优化AI修图标签显示
This commit is contained in:
@@ -285,7 +285,7 @@ final class TravelAlbumAIRetouchTemplateViewController: BaseViewController {
|
|||||||
title: category.title,
|
title: category.title,
|
||||||
badge: category == .cover
|
badge: category == .cover
|
||||||
? .gift
|
? .gift
|
||||||
: (self.viewModel.isOptional(category) ? .optional : .required)
|
: (self.viewModel.isOptional(category) ? .optional : nil)
|
||||||
)
|
)
|
||||||
case .mode:
|
case .mode:
|
||||||
return nil
|
return nil
|
||||||
@@ -840,7 +840,6 @@ final class TravelAlbumAIRetouchModeCell: UICollectionViewCell {
|
|||||||
|
|
||||||
/// 模板分组标题右侧的业务标记。
|
/// 模板分组标题右侧的业务标记。
|
||||||
fileprivate enum AIRetouchTemplateSectionBadge {
|
fileprivate enum AIRetouchTemplateSectionBadge {
|
||||||
case required
|
|
||||||
case optional
|
case optional
|
||||||
case gift
|
case gift
|
||||||
}
|
}
|
||||||
@@ -850,30 +849,36 @@ final class TravelAlbumAIRetouchSectionHeader: UICollectionReusableView {
|
|||||||
static let reuseIdentifier = "TravelAlbumAIRetouchSectionHeader"
|
static let reuseIdentifier = "TravelAlbumAIRetouchSectionHeader"
|
||||||
|
|
||||||
private let titleLabel = UILabel()
|
private let titleLabel = UILabel()
|
||||||
private let optionalLabel = UILabel()
|
private let badgeContainer = UIView()
|
||||||
|
private let badgeLabel = UILabel()
|
||||||
|
|
||||||
override init(frame: CGRect) {
|
override init(frame: CGRect) {
|
||||||
super.init(frame: frame)
|
super.init(frame: frame)
|
||||||
titleLabel.font = .systemFont(ofSize: 17, weight: .semibold)
|
titleLabel.font = .systemFont(ofSize: 17, weight: .semibold)
|
||||||
titleLabel.textColor = AIRetouchTemplateStyle.textPrimary
|
titleLabel.textColor = AIRetouchTemplateStyle.textPrimary
|
||||||
optionalLabel.font = .systemFont(ofSize: 11, weight: .medium)
|
badgeContainer.layer.cornerRadius = 10
|
||||||
optionalLabel.textAlignment = .center
|
badgeContainer.clipsToBounds = true
|
||||||
optionalLabel.layer.cornerRadius = 10
|
badgeLabel.font = .systemFont(ofSize: 11, weight: .medium)
|
||||||
optionalLabel.clipsToBounds = true
|
badgeLabel.textAlignment = .center
|
||||||
|
badgeLabel.numberOfLines = 1
|
||||||
|
|
||||||
addSubview(titleLabel)
|
addSubview(titleLabel)
|
||||||
addSubview(optionalLabel)
|
addSubview(badgeContainer)
|
||||||
|
badgeContainer.addSubview(badgeLabel)
|
||||||
titleLabel.snp.makeConstraints { make in
|
titleLabel.snp.makeConstraints { make in
|
||||||
make.leading.equalToSuperview().offset(18)
|
make.leading.equalToSuperview().offset(18)
|
||||||
make.centerY.equalToSuperview()
|
make.centerY.equalToSuperview()
|
||||||
}
|
}
|
||||||
optionalLabel.snp.makeConstraints { make in
|
badgeContainer.snp.makeConstraints { make in
|
||||||
make.leading.equalTo(titleLabel.snp.trailing).offset(8)
|
make.leading.equalTo(titleLabel.snp.trailing).offset(8)
|
||||||
make.centerY.equalTo(titleLabel)
|
make.centerY.equalTo(titleLabel)
|
||||||
make.width.greaterThanOrEqualTo(38)
|
|
||||||
make.height.equalTo(20)
|
make.height.equalTo(20)
|
||||||
make.trailing.lessThanOrEqualToSuperview().offset(-18)
|
make.trailing.lessThanOrEqualToSuperview().offset(-18)
|
||||||
}
|
}
|
||||||
|
badgeLabel.snp.makeConstraints { make in
|
||||||
|
make.leading.trailing.equalToSuperview().inset(9)
|
||||||
|
make.centerY.equalToSuperview()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@available(*, unavailable)
|
@available(*, unavailable)
|
||||||
@@ -884,24 +889,20 @@ final class TravelAlbumAIRetouchSectionHeader: UICollectionReusableView {
|
|||||||
/// 更新分组标题与业务标记。
|
/// 更新分组标题与业务标记。
|
||||||
fileprivate func apply(title: String, badge: AIRetouchTemplateSectionBadge?) {
|
fileprivate func apply(title: String, badge: AIRetouchTemplateSectionBadge?) {
|
||||||
titleLabel.text = title
|
titleLabel.text = title
|
||||||
optionalLabel.isHidden = badge == nil
|
badgeContainer.isHidden = badge == nil
|
||||||
switch badge {
|
switch badge {
|
||||||
case .required:
|
|
||||||
optionalLabel.text = " 必选 "
|
|
||||||
optionalLabel.textColor = AIRetouchTemplateStyle.primary
|
|
||||||
optionalLabel.backgroundColor = AIRetouchTemplateStyle.primary.withAlphaComponent(0.1)
|
|
||||||
case .optional:
|
case .optional:
|
||||||
optionalLabel.text = " 选填 "
|
badgeLabel.text = "选填"
|
||||||
optionalLabel.textColor = AIRetouchTemplateStyle.primary
|
badgeLabel.textColor = AIRetouchTemplateStyle.primary
|
||||||
optionalLabel.backgroundColor = AIRetouchTemplateStyle.primary.withAlphaComponent(0.1)
|
badgeContainer.backgroundColor = AIRetouchTemplateStyle.primary.withAlphaComponent(0.1)
|
||||||
case .gift:
|
case .gift:
|
||||||
optionalLabel.text = " 赠送 · 不占额度 "
|
badgeLabel.text = "赠送 · 不占额度"
|
||||||
optionalLabel.textColor = AIRetouchTemplateStyle.gift
|
badgeLabel.textColor = AIRetouchTemplateStyle.gift
|
||||||
optionalLabel.backgroundColor = AIRetouchTemplateStyle.giftBackground
|
badgeContainer.backgroundColor = AIRetouchTemplateStyle.giftBackground
|
||||||
case nil:
|
case nil:
|
||||||
optionalLabel.text = nil
|
badgeLabel.text = nil
|
||||||
}
|
}
|
||||||
let badgeText = optionalLabel.text?.trimmingCharacters(in: .whitespaces)
|
let badgeText = badgeLabel.text
|
||||||
accessibilityLabel = badgeText.map { "\(title),\($0)" } ?? title
|
accessibilityLabel = badgeText.map { "\(title),\($0)" } ?? title
|
||||||
accessibilityTraits = .header
|
accessibilityTraits = .header
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -536,7 +536,8 @@ final class TravelAlbumDetailViewControllerTests: XCTestCase {
|
|||||||
} as? UICollectionView
|
} as? UICollectionView
|
||||||
)
|
)
|
||||||
let accessibleLabels = controller.view.allAccessibilityLabels()
|
let accessibleLabels = controller.view.allAccessibilityLabels()
|
||||||
XCTAssertTrue(accessibleLabels.contains("原图精修,必选"))
|
XCTAssertTrue(accessibleLabels.contains("原图精修"))
|
||||||
|
XCTAssertFalse(accessibleLabels.contains("原图精修,必选"))
|
||||||
XCTAssertTrue(accessibleLabels.contains("氛围感修图,选填"))
|
XCTAssertTrue(accessibleLabels.contains("氛围感修图,选填"))
|
||||||
XCTAssertTrue(accessibleLabels.contains("封面风格,赠送 · 不占额度"))
|
XCTAssertTrue(accessibleLabels.contains("封面风格,赠送 · 不占额度"))
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user