requested changes and improvements made

This commit is contained in:
Kevin G Christiano 2020-05-05 10:41:55 -04:00
parent 8b05b20f51
commit 0aad6f3aa7
5 changed files with 35 additions and 38 deletions

View File

@ -54,7 +54,7 @@ open class Arrow: View {
get { return arrowModel?.lineWidth ?? 1 }
set { arrowModel?.lineWidth = newValue }
}
//--------------------------------------------------
// MARK: - Constraints
//--------------------------------------------------
@ -78,12 +78,6 @@ open class Arrow: View {
super.init(frame: frame)
}
// public convenience init(degrees: Float = 0) {
// self.init(frame: .zero)
// self.model = ArrowModel()
// arrowModel?.degrees = degrees
// }
public required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
@ -105,9 +99,7 @@ open class Arrow: View {
// MARK: - Drawing
//--------------------------------------------------
/**
Draws the arrow pointing to the right and then rotates the arrow x degrees counter-clockwise.
*/
/// Draws the arrow pointing to the right and then rotates the arrow x degrees counter-clockwise.
open override func draw(_ rect: CGRect) {
super.draw(rect)
@ -115,7 +107,7 @@ open class Arrow: View {
drawShapeLayer()
let radians = CGFloat(degrees * Float.pi / 180)
arrowLayer.transform = CATransform3DMakeRotation(-radians, 0.0, 0.0, 1.0)
arrowLayer.transform = CATransform3DMakeRotation(-radians, 0, 0, 1)
}
private func drawShapeLayer() {
@ -153,6 +145,10 @@ open class Arrow: View {
return bezierPath.cgPath
}
//--------------------------------------------------
// MARK: - MoleculeViewProtocol
//--------------------------------------------------
public override func set(with model: MoleculeModelProtocol, _ delegateObject: MVMCoreUIDelegateObject?, _ additionalData: [AnyHashable: Any]?) {
super.set(with: model, delegateObject, additionalData)

View File

@ -61,12 +61,12 @@ open class BarsIndicatorView: CarouselIndicator {
}
public override var indicatorColor: UIColor {
get { return carouselIndicatorModel?.indicatorColor.uiColor ?? .mvmBlack }
get { return super.indicatorColor }
set (newColor) {
super.indicatorColor = newColor
for (i, barTuple) in barReferences.enumerated() where i != currentIndex {
barTuple.view.backgroundColor = newColor
for (i, barTuple) in barReferences.enumerated() {
barTuple.view.backgroundColor = i == currentIndex ? currentIndicatorColor : newColor
}
}
}
@ -158,8 +158,8 @@ open class BarsIndicatorView: CarouselIndicator {
}
let expression = {
self.barReferences[previousIndex].view.backgroundColor = self.indicatorColor
self.barReferences[newIndex].view.backgroundColor = self.currentIndicatorColor
self.barReferences[previousIndex].view.backgroundColor = self.isEnabled ? self.indicatorColor : self.disabledIndicatorColor
self.barReferences[newIndex].view.backgroundColor = self.isEnabled ? self.currentIndicatorColor : self.disabledIndicatorColor
self.barReferences[previousIndex].constraint.constant = BarsIndicatorView.indicatorBarHeight.unselected
self.barReferences[newIndex].constraint.constant = BarsIndicatorView.indicatorBarHeight.selected
self.layoutIfNeeded()

View File

@ -140,11 +140,12 @@ open class CarouselIndicator: Control, CarouselPageControlProtocol {
}
func incrementCurrentIndex() {
currentIndex = min(currentIndex + 1, numberOfPages - 1)
currentIndex = (currentIndex + 1) % numberOfPages
}
func decrementCurrentIndex() {
currentIndex = max(0, currentIndex - 1)
let newIndex = currentIndex - 1
currentIndex = newIndex < 0 ? numberOfPages - 1 : newIndex
}
/// Increments the currentIndex value.
@ -222,7 +223,7 @@ open class CarouselIndicator: Control, CarouselPageControlProtocol {
let accessibleIndex = ordinalFormatter.string(from: NSNumber(value: index))
else { return }
accessibilityValue = String(format: accessibleFormat, accessibleIndex, total)
accessibilityValue = String(format: accessibleFormat, accessibleIndex, total)
}
func accessibilityAdjust(toPage index: Int) {

View File

@ -26,12 +26,13 @@ open class NumericIndicatorView: CarouselIndicator {
let leftArrow: Arrow = {
let arrow = Arrow(model: ArrowModel(), nil, nil)
arrow.isAccessibilityElement = false
arrow.direction = .left
arrow.pinHeightAndWidth()
return arrow
}()
let rightArrow: Arrow = {
let arrow = Arrow()
let arrow = Arrow(model: ArrowModel(), nil, nil)
arrow.pinHeightAndWidth()
return arrow
}()
@ -41,23 +42,17 @@ open class NumericIndicatorView: CarouselIndicator {
//--------------------------------------------------
open override var isEnabled: Bool {
didSet {
pageCount.textColor = isEnabled ? indicatorColor : disabledIndicatorColor
leftArrow.tintColor = isEnabled ? indicatorColor : disabledIndicatorColor
rightArrow.tintColor = isEnabled ? indicatorColor : disabledIndicatorColor
}
didSet { setViewColor(isEnabled ? indicatorColor : disabledIndicatorColor) }
}
/// Sets the color for pageCount text, left arrow and right arrow.
public override var indicatorColor: UIColor {
get { return carouselIndicatorModel?.indicatorColor.uiColor ?? .mvmBlack }
get { return super.indicatorColor }
set (newColor) {
super.indicatorColor = newColor
if isEnabled {
pageCount.textColor = newColor
leftArrow.arrowModel?.color = Color(uiColor: newColor)
rightArrow.arrowModel?.color = Color(uiColor: newColor)
setViewColor(newColor)
}
}
}
@ -90,12 +85,16 @@ open class NumericIndicatorView: CarouselIndicator {
leftArrow.centerYAnchor.constraint(equalTo: centerYAnchor),
rightArrow.centerYAnchor.constraint(equalTo: centerYAnchor),
leftArrow.leadingAnchor.constraint(equalTo: leadingAnchor),
pageCount.leadingAnchor.constraint(equalTo: leftArrow.trailingAnchor, constant: PaddingOne),
rightArrow.leadingAnchor.constraint(equalTo: pageCount.trailingAnchor, constant: PaddingOne),
pageCount.leadingAnchor.constraint(equalTo: leftArrow.trailingAnchor, constant: Padding.Two),
rightArrow.leadingAnchor.constraint(equalTo: pageCount.trailingAnchor, constant: Padding.Two),
trailingAnchor.constraint(equalTo: rightArrow.trailingAnchor)
])
}
//--------------------------------------------------
// MARK: - Methods
//--------------------------------------------------
public override func assessTouchOf(_ touchPoint_X: CGFloat) {
if touchPoint_X > bounds.width / 2 {
@ -105,14 +104,15 @@ open class NumericIndicatorView: CarouselIndicator {
}
}
open override func set(with model: MoleculeModelProtocol, _ delegateObject: MVMCoreUIDelegateObject?, _ additionalData: [AnyHashable: Any]?) {
super.set(with: model, delegateObject, additionalData)
private func setViewColor(_ newColor: UIColor) {
guard let model = model as? CarouselIndicatorModel else { return }
isEnabled = model.enabled
pageCount.textColor = newColor
leftArrow.color = newColor
rightArrow.color = newColor
rightArrow.setNeedsDisplay()
leftArrow.setNeedsDisplay()
}
//--------------------------------------------------
// MARK: - IndicatorViewProtocol
//--------------------------------------------------

View File

@ -29,7 +29,7 @@ import UIKit
public var itemAlignment: UICollectionView.ScrollPosition?
public var pagingMolecule: (CarouselPagingModelProtocol & MoleculeModelProtocol)?
public init(molecules: [CarouselItemModel]){
public init(molecules: [CarouselItemModel]) {
self.molecules = molecules
}