[upate]update custom button.

This commit is contained in:
suzuki_keishi 2016-08-10 11:50:22 +09:00
parent cdef28539e
commit 823fe89a1c
4 changed files with 29 additions and 109 deletions

View File

@ -23,7 +23,7 @@
8909B54D1BC7916E0060A053 /* SKPhotoBrowser.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 8909B54C1BC7916E0060A053 /* SKPhotoBrowser.bundle */; };
8917B1B01D5A13DE000CE1C4 /* SKPhotoBrowserDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8917B1AF1D5A13DE000CE1C4 /* SKPhotoBrowserDelegate.swift */; };
8917B1B21D5A1407000CE1C4 /* SKPhotoBrowserAnimatorDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8917B1B11D5A1407000CE1C4 /* SKPhotoBrowserAnimatorDelegate.swift */; };
8917B1B41D5A14B0000CE1C4 /* SKButtonBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8917B1B31D5A14B0000CE1C4 /* SKButtonBuilder.swift */; };
8917B1B41D5A14B0000CE1C4 /* SKButtons.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8917B1B31D5A14B0000CE1C4 /* SKButtons.swift */; };
89D0BA471D5994A8002A811B /* SKAnimator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89D0BA461D5994A8002A811B /* SKAnimator.swift */; };
89D0BA491D59966B002A811B /* SKMesurement.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89D0BA481D59966B002A811B /* SKMesurement.swift */; };
8CA6C6521CBE76E80054D3C2 /* SKLocalPhoto.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA6C6511CBE76E80054D3C2 /* SKLocalPhoto.swift */; };
@ -60,7 +60,7 @@
8909B54C1BC7916E0060A053 /* SKPhotoBrowser.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = SKPhotoBrowser.bundle; sourceTree = "<group>"; };
8917B1AF1D5A13DE000CE1C4 /* SKPhotoBrowserDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SKPhotoBrowserDelegate.swift; sourceTree = "<group>"; };
8917B1B11D5A1407000CE1C4 /* SKPhotoBrowserAnimatorDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SKPhotoBrowserAnimatorDelegate.swift; sourceTree = "<group>"; };
8917B1B31D5A14B0000CE1C4 /* SKButtonBuilder.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SKButtonBuilder.swift; sourceTree = "<group>"; };
8917B1B31D5A14B0000CE1C4 /* SKButtons.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SKButtons.swift; sourceTree = "<group>"; };
89D0BA461D5994A8002A811B /* SKAnimator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SKAnimator.swift; sourceTree = "<group>"; };
89D0BA481D59966B002A811B /* SKMesurement.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SKMesurement.swift; sourceTree = "<group>"; };
8CA6C6511CBE76E80054D3C2 /* SKLocalPhoto.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SKLocalPhoto.swift; sourceTree = "<group>"; };
@ -118,7 +118,7 @@
8909B5321BC791280060A053 /* SKPhotoBrowser */ = {
isa = PBXGroup;
children = (
8917B1B31D5A14B0000CE1C4 /* SKButtonBuilder.swift */,
8917B1B31D5A14B0000CE1C4 /* SKButtons.swift */,
89D0BA461D5994A8002A811B /* SKAnimator.swift */,
26C97AD41D0EB6870039F6CB /* SKCache.swift */,
26C97AD81D0EB8BB0039F6CB /* SKCacheable.swift */,
@ -288,7 +288,7 @@
89D0BA491D59966B002A811B /* SKMesurement.swift in Sources */,
8909B5471BC791510060A053 /* SKPhoto.swift in Sources */,
8909B5461BC791510060A053 /* SKIndicatorView.swift in Sources */,
8917B1B41D5A14B0000CE1C4 /* SKButtonBuilder.swift in Sources */,
8917B1B41D5A14B0000CE1C4 /* SKButtons.swift in Sources */,
26C97AD51D0EB6870039F6CB /* SKCache.swift in Sources */,
210E53EF1C986D57008DD5E3 /* UIImage+Rotation.swift in Sources */,
8909B5431BC791510060A053 /* SKCaptionView.swift in Sources */,

View File

@ -1,5 +1,5 @@
//
// SKButtonBuilder.swift
// SKButtons.swift
// SKPhotoBrowser
//
// Created by on 2016/08/09.

View File

@ -62,23 +62,9 @@ public class SKPhotoBrowser: UIViewController, UIScrollViewDelegate {
private var panGesture: UIPanGestureRecognizer!
// MARK: close button
private var closeButton: SKCloseButton!
// MARK: delete button
var deleteButton: UIButton!
var deleteButtonShowFrame: CGRect!
var deleteButtonHideFrame: CGRect!
// MARK: - custom buttons
// MARK: CustomCloseButton
var customCloseButton: UIButton!
public var customCloseButtonShowFrame: CGRect!
public var customCloseButtonHideFrame: CGRect!
private var deleteButton: SKDeleteButton!
public var customCloseButtonImage: UIImage!
public var customCloseButtonEdgeInsets: UIEdgeInsets!
// MARK: CustomDeleteButton
var customDeleteButton: UIButton!
public var customDeleteButtonShowFrame: CGRect!
public var customDeleteButtonHideFrame: CGRect!
public var customDeleteButtonImage: UIImage!
public var customDeleteButtonEdgeInsets: UIEdgeInsets!
@ -238,8 +224,6 @@ public class SKPhotoBrowser: UIViewController, UIScrollViewDelegate {
setCustomSetting()
setSettingCloseButton()
setSettingDeleteButton()
setSettingCustomCloseButton()
setSettingCustomDeleteButton()
// action button
toolActionButton = UIBarButtonItem(barButtonSystemItem: .Action, target: self, action: #selector(SKPhotoBrowser.actionButtonPressed))
@ -317,72 +301,33 @@ public class SKPhotoBrowser: UIViewController, UIScrollViewDelegate {
}
}
// MARK: - Buttons' setting
private func setSettingCloseButton() {
closeButton = SKCloseButton(frame: view.frame)
closeButton.addTarget(self, action: #selector(closeButtonPressed(_:)), forControlEvents: UIControlEvents.TouchUpInside)
closeButton.hidden = !displayCloseButton
view.addSubview(closeButton)
// If another developer has not set their values
if customCloseButtonImage != nil {
closeButton.setImage(customCloseButtonImage, forState: .Normal)
}
if customCloseButtonEdgeInsets != nil {
closeButton.imageEdgeInsets = customCloseButtonEdgeInsets
}
}
// MARK: Delete button
private func setSettingDeleteButton() {
deleteButton = SKDeleteButton(frame: view.frame)
deleteButton.addTarget(self, action: #selector(deleteButtonPressed(_:)), forControlEvents: UIControlEvents.TouchUpInside)
deleteButton.hidden = !displayDeleteButton
view.addSubview(deleteButton)
}
// MARK: - Custom buttons' setting
// MARK: Custom Close Button
private func setSettingCustomCloseButton() {
if displayCustomCloseButton == true {
let closeImage = UIImage(named: "SKPhotoBrowser.bundle/images/btn_common_close_wh", inBundle: bundle, compatibleWithTraitCollection: nil) ?? UIImage()
customCloseButton = UIButton(type: .Custom)
customCloseButton.addTarget(self, action: #selector(self.closeButtonPressed(_:)), forControlEvents: .TouchUpInside)
customCloseButton.backgroundColor = .clearColor()
// If another developer has not set their values
if customCloseButtonImage != nil {
customCloseButton.setImage(customCloseButtonImage, forState: .Normal)
} else {
customCloseButton.setImage(closeImage, forState: .Normal)
}
if customCloseButtonShowFrame == nil && customCloseButtonHideFrame == nil {
customCloseButtonShowFrame = CGRect(x: 5, y: buttonTopOffset, width: 44, height: 44)
customCloseButtonHideFrame = CGRect(x: 5, y: -20, width: 44, height: 44)
}
if customCloseButtonEdgeInsets != nil {
customCloseButton.imageEdgeInsets = customCloseButtonEdgeInsets
}
customCloseButton.translatesAutoresizingMaskIntoConstraints = true
view.addSubview(customCloseButton)
customCloseButton.autoresizingMask = [.FlexibleBottomMargin, .FlexibleLeftMargin, .FlexibleRightMargin, .FlexibleTopMargin]
// If another developer has not set their values
if customDeleteButtonImage != nil {
deleteButton.setImage(customCloseButtonImage, forState: .Normal)
}
}
// MARK: Custom Delete Button
private func setSettingCustomDeleteButton() {
if displayCustomDeleteButton == true {
customDeleteButton = UIButton(type: .Custom)
customDeleteButton.backgroundColor = .clearColor()
customDeleteButton.addTarget(self, action: #selector(self.deleteButtonPressed(_:)), forControlEvents: .TouchUpInside)
// If another developer has not set their values
if customDeleteButtonShowFrame == nil && customDeleteButtonHideFrame == nil {
customDeleteButtonShowFrame = CGRect(x: view.frame.width - 44, y: buttonTopOffset, width: 44, height: 44)
customDeleteButtonHideFrame = CGRect(x: view.frame.width - 44, y: -20, width: 44, height: 44)
}
if let _customDeleteButtonImage = customDeleteButtonImage {
customDeleteButton.setImage(_customDeleteButtonImage, forState: .Normal)
}
if let _customDeleteButtonEdgeInsets = customDeleteButtonEdgeInsets {
customDeleteButton.imageEdgeInsets = _customDeleteButtonEdgeInsets
}
view.addSubview(customDeleteButton)
customDeleteButton.translatesAutoresizingMaskIntoConstraints = true
customDeleteButton.autoresizingMask = [.FlexibleBottomMargin, .FlexibleLeftMargin, .FlexibleRightMargin, .FlexibleTopMargin]
if customDeleteButtonEdgeInsets != nil {
deleteButton.imageEdgeInsets = customCloseButtonEdgeInsets
}
}
@ -488,15 +433,7 @@ public class SKPhotoBrowser: UIViewController, UIScrollViewDelegate {
}
if displayDeleteButton {
deleteButton.alpha = 1
deleteButton.frame = deleteButtonShowFrame
}
if displayCustomCloseButton {
customCloseButton.alpha = 1
customCloseButton.frame = customCloseButtonShowFrame
}
if displayCustomDeleteButton {
customDeleteButton.alpha = 1
customDeleteButton.frame = customDeleteButtonShowFrame
deleteButton.frame = deleteButton.showFrame
}
}
@ -561,18 +498,6 @@ public class SKPhotoBrowser: UIViewController, UIScrollViewDelegate {
/// This function changes buttons's frame after the rotation of the device
private func frameForButton() {
if displayDeleteButton {
deleteButtonShowFrame = CGRect(x: view.frame.width - 44, y: buttonTopOffset, width: 44, height: 44)
deleteButtonHideFrame = CGRect(x: view.frame.width - 44, y: -20, width: 44, height: 44)
}
if displayCustomDeleteButton {
customDeleteButtonShowFrame = CGRect(x: customDeleteButtonShowFrame.origin.y, y: customDeleteButtonShowFrame.origin.x, width: customDeleteButtonShowFrame.width, height: customDeleteButtonShowFrame.height)
customDeleteButtonHideFrame = CGRect(x: customDeleteButtonHideFrame.origin.y, y: customDeleteButtonHideFrame.origin.x, width: customDeleteButtonHideFrame.width, height: customDeleteButtonHideFrame.height)
}
if displayCustomCloseButton {
customCloseButtonHideFrame = CGRect(x: customCloseButtonHideFrame.origin.y, y: customCloseButtonHideFrame.origin.x, width: customCloseButtonHideFrame.width, height: customCloseButtonHideFrame.height)
customCloseButtonShowFrame = CGRect(x: customCloseButtonShowFrame.origin.y, y: customCloseButtonShowFrame.origin.x, width: customCloseButtonShowFrame.width, height: customCloseButtonShowFrame.height)
}
}
// MARK: - delete function
@ -876,15 +801,7 @@ public class SKPhotoBrowser: UIViewController, UIScrollViewDelegate {
}
if self.displayDeleteButton {
self.deleteButton.alpha = alpha
self.deleteButton.frame = hidden ? self.deleteButtonHideFrame : self.deleteButtonShowFrame
}
if self.displayCustomCloseButton {
self.customCloseButton.alpha = alpha
self.customCloseButton.frame = hidden ? self.customCloseButtonHideFrame : self.customCloseButtonShowFrame
}
if self.displayCustomDeleteButton {
self.customDeleteButton.alpha = alpha
self.customDeleteButton.frame = hidden ? self.customDeleteButtonHideFrame : self.customDeleteButtonShowFrame
self.deleteButton.frame = hidden ? self.deleteButton.hideFrame : self.deleteButton.showFrame
}
for captionView in captionViews {
captionView.alpha = alpha

View File

@ -271,14 +271,17 @@ public class SKZoomingScrollView: UIScrollView, UIScrollViewDelegate, SKDetectin
// MARK: - SKDetectingViewDelegate
func handleSingleTap(view: UIView, touch: UITouch) {
guard photoBrowser?.enableZoomBlackArea == true else {
guard let browser = photoBrowser else {
return
}
guard browser.enableZoomBlackArea == true else {
return
}
if photoBrowser?.areControlsHidden() == false && photoBrowser?.enableSingleTapDismiss == true {
photoBrowser?.determineAndClose()
if browser.areControlsHidden() == false && browser.enableSingleTapDismiss == true {
browser.determineAndClose()
} else {
photoBrowser?.toggleControls()
browser.toggleControls()
}
}