Use stand accessoryView mechanics

pull/1/head
Michael Kirk 7 years ago
parent 5127352f7a
commit 375c8bee04

@ -4,6 +4,34 @@
import Foundation import Foundation
@objc
class OWSColorPickerAccessoryView: NeverClearView {
override var intrinsicContentSize: CGSize {
return CGSize(width: kSwatchSize, height: kSwatchSize)
}
override func sizeThatFits(_ size: CGSize) -> CGSize {
return self.intrinsicContentSize
}
let kSwatchSize: CGFloat = 24
@objc
required init(color: UIColor) {
super.init(frame: .zero)
let circleView = CircleView()
circleView.backgroundColor = color
addSubview(circleView)
circleView.autoSetDimensions(to: CGSize(width: kSwatchSize, height: kSwatchSize))
circleView.autoPinEdgesToSuperviewEdges()
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
@objc (OWSCircleView) @objc (OWSCircleView)
class CircleView: UIView { class CircleView: UIView {
override var bounds: CGRect { override var bounds: CGRect {

@ -699,15 +699,8 @@ const CGFloat kIconViewLength = 24;
iconName:(NSString *)iconName iconName:(NSString *)iconName
disclosureIconColor:(UIColor *)disclosureIconColor disclosureIconColor:(UIColor *)disclosureIconColor
{ {
UIView *accessoryView = [NeverClearView new]; OWSColorPickerAccessoryView *accessoryView =
OWSCircleView *swatchView = [OWSCircleView new]; [[OWSColorPickerAccessoryView alloc] initWithColor:disclosureIconColor];
[accessoryView addSubview:swatchView];
[swatchView autoPinEdgesToSuperviewEdges];
const CGFloat kSwatchWidth = 20;
[swatchView autoSetDimensionsToSize:CGSizeMake(kSwatchWidth, kSwatchWidth)];
swatchView.backgroundColor = disclosureIconColor;
[swatchView setCompressionResistanceHigh];
UITableViewCell *cell = [self cellWithName:name iconName:iconName customAccessoryView:accessoryView]; UITableViewCell *cell = [self cellWithName:name iconName:iconName customAccessoryView:accessoryView];
// cell.accessoryView = accessoryView; // cell.accessoryView = accessoryView;
@ -742,14 +735,8 @@ const CGFloat kIconViewLength = 24;
UIStackView *contentRow = [[UIStackView alloc] initWithArrangedSubviews:@[ iconView, rowLabel ]]; UIStackView *contentRow = [[UIStackView alloc] initWithArrangedSubviews:@[ iconView, rowLabel ]];
if (customAccessoryView) { if (customAccessoryView) {
OWSAssertDebug(cell.accessoryView == nil); OWSAssertDebug(cell.accessoryView == nil);
UIView *accessoryView = [UIView containerView]; [customAccessoryView sizeToFit];
[accessoryView autoSetDimensionsToSize:CGSizeMake(kIconViewLength, kIconViewLength)]; cell.accessoryView = customAccessoryView;
[accessoryView addSubview:customAccessoryView];
[customAccessoryView autoAlignAxis:ALAxisHorizontal toSameAxisOfView:accessoryView withOffset:0];
[customAccessoryView autoAlignAxis:ALAxisVertical toSameAxisOfView:accessoryView withOffset:6];
[contentRow addArrangedSubview:accessoryView];
} }
contentRow.spacing = self.iconSpacing; contentRow.spacing = self.iconSpacing;

Loading…
Cancel
Save