Randall Li 502bc5d910 Ran a Swift formatter
PiperOrigin-RevId: 395947664
2021-09-10 09:48:14 -07:00

78 lines
2.7 KiB
Swift

// Copyright 2018-present the Material Components for iOS authors. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
import UIKit
import MaterialComponents.MaterialCards_Theming
import MaterialComponents.MaterialTypographyScheme
class CardEditReorderCollectionCell: MDCCardCollectionCell {
private lazy var imageView: UIImageView = {
let imageView = UIImageView(frame: CGRect.zero)
imageView.contentMode = .scaleAspectFill
imageView.clipsToBounds = true
imageView.translatesAutoresizingMaskIntoConstraints = false
if let shapedShadowLayer = self.layer as? MDCShapedShadowLayer {
imageView.layer.mask = shapedShadowLayer.shapeLayer
}
return imageView
}()
private lazy var titleLabel: UILabel = {
let label = UILabel(frame: CGRect.zero)
label.numberOfLines = 1
label.textAlignment = .center
label.lineBreakMode = .byTruncatingTail
label.translatesAutoresizingMaskIntoConstraints = false
return label
}()
func configure(title: String, imageName: String) {
let bundle = Bundle(for: CardEditReorderCollectionCell.self)
self.imageView.image = UIImage(named: imageName, in: bundle, compatibleWith: nil)
self.titleLabel.text = title
self.contentView.addSubview(imageView)
self.contentView.addSubview(titleLabel)
titleLabel.setContentCompressionResistancePriority(
UILayoutPriority(rawValue: 800),
for: .vertical)
addConstraints()
}
func apply(containerScheme: MDCContainerScheming, typographyScheme: MDCTypographyScheming) {
self.applyTheme(withScheme: containerScheme)
self.titleLabel.font = typographyScheme.caption
}
private func addConstraints() {
let views: [String: UIView] = ["image": self.imageView, "label": self.titleLabel]
let metrics = ["margin": 4.0]
self.addConstraints(
NSLayoutConstraint.constraints(
withVisualFormat: "H:|[image]|",
options: [], metrics: metrics, views: views)
+ NSLayoutConstraint.constraints(
withVisualFormat: "V:|[image]-(margin)-[label]-(margin)-|",
options: [], metrics: metrics, views: views)
+ NSLayoutConstraint.constraints(
withVisualFormat: "H:|-(margin)-[label]|",
options: [], metrics: metrics, views: views)
)
}
}