Merge pull request #37 from alexsanderskywork/master

I added CustomDeleteButton but there is a mistake with rotation device
This commit is contained in:
Alexsandersky 2016-03-08 23:58:21 +04:00
commit f02652f1d2
1 changed files with 79 additions and 24 deletions

View File

@ -43,6 +43,7 @@ public class SKPhotoBrowser: UIViewController, UIScrollViewDelegate {
public var displayDeleteButton = false
public var displayCloseButton = true // default is true
public var displayCustomCloseButton = false // if it is true displayCloseButton will be false
public var displayCustomDeleteButton = false // if it is true displayDeleteButton will be false
// actions
private var activityViewController: UIActivityViewController!
@ -57,23 +58,31 @@ public class SKPhotoBrowser: UIViewController, UIScrollViewDelegate {
private var toolNextButton: UIBarButtonItem!
private var pagingScrollView: UIScrollView!
private var panGesture: UIPanGestureRecognizer!
// MARK: close button
private var closeButton: UIButton!
private var closeButtonShowFrame: CGRect! //= CGRect(x: 5, y: 5, width: 44, height: 44)
private var closeButtonHideFrame: CGRect! //= CGRect(x: 5, y: -20, width: 44, height: 44)
// MARK: delete button
private var deleteButton: UIButton!
private var deleteButtonShowFrame: CGRect!
private var deleteButtonHideFrame: CGRect!
// custom close button
// MARK: - custom buttons
// MARK: CustomCloseButton
private var customCloseButton: UIButton!
public var customCloseButtonShowFrame: CGRect!
public var customCloseButtonHideFrame: CGRect!
public var customCloseButtonImage: UIImage!
public var customCloseButtonEdgeInsets: UIEdgeInsets!
public var customCloseButtonConstraints: [NSLayoutConstraint]!
private var customCloseButtonHideOldFrame: CGRect!
private var customCloseButtonShowOldFrame: CGRect!
private var deleteButton: UIButton!
private var deleteButtonShowFrame: CGRect! //= CGRect(x: UIScreen.mainScreen().bounds.size.width - 44 - 5, y: 5, width: 44, height: 44)
private var deleteButtonHideFrame: CGRect! //= CGRect(x: UIScreen.mainScreen().bounds.size.width - 44 - 5, y: -20, width: 44, height: 44)
// MARK: CustomDeleteButton
private var customDeleteButton: UIButton!
public var customDeleteButtonShowFrame: CGRect!
public var customDeleteButtonHideFrame: CGRect!
public var customDeleteButtonImage: UIImage!
public var customDeleteButtonEdgeInsets: UIEdgeInsets!
// photo's paging
private var visiblePages: Set<SKZoomingScrollView> = Set()
@ -231,6 +240,7 @@ public class SKPhotoBrowser: UIViewController, UIScrollViewDelegate {
setSettingCloseButton()
setSettingDeleteButton()
setSettingCustomCloseButton()
setSettingCustomDeleteButton()
// action button
@ -308,8 +318,13 @@ public class SKPhotoBrowser: UIViewController, UIScrollViewDelegate {
if displayCustomCloseButton == true {
displayCloseButton = false
}
if displayCustomDeleteButton == true {
displayDeleteButton = false
}
}
// MARK: - Buttons' setting
// MARK: Close button
private func setSettingCloseButton() {
if displayCloseButton == true {
let doneImage = UIImage(named: "SKPhotoBrowser.bundle/images/btn_common_close_wh", inBundle: bundle, compatibleWithTraitCollection: nil) ?? UIImage()
@ -330,6 +345,31 @@ public class SKPhotoBrowser: UIViewController, UIScrollViewDelegate {
}
}
// MARK: Delete button
private func setSettingDeleteButton() {
if displayDeleteButton == true {
deleteButton = UIButton(type: .Custom)
deleteButtonShowFrame = CGRect(x: view.frame.width - 44, y: 5, width: 44, height: 44)
deleteButtonHideFrame = CGRect(x: view.frame.width - 44, y: -20, width: 44, height: 44)
let image = UIImage(named: "SKPhotoBrowser.bundle/images/btn_common_delete_wh", inBundle: bundle, compatibleWithTraitCollection: nil) ?? UIImage()
if UI_USER_INTERFACE_IDIOM() == .Phone {
deleteButton.imageEdgeInsets = UIEdgeInsets(top: 15.25, left: 15.25, bottom: 15.25, right: 15.25)
} else {
deleteButton.imageEdgeInsets = UIEdgeInsetsMake(12.3, 12.3, 12.3, 12.3)
}
deleteButton.setImage(image, forState: .Normal)
deleteButton.addTarget(self, action: "deleteButtonPressed:", forControlEvents: UIControlEvents.TouchUpInside)
deleteButton.alpha = 0.0
view.addSubview(deleteButton)
deleteButton.translatesAutoresizingMaskIntoConstraints = true
deleteButton.autoresizingMask = [.FlexibleBottomMargin, .FlexibleLeftMargin, .FlexibleRightMargin, .FlexibleTopMargin]
}
}
// 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()
@ -349,9 +389,6 @@ public class SKPhotoBrowser: UIViewController, UIScrollViewDelegate {
if customCloseButtonEdgeInsets != nil {
customCloseButton.imageEdgeInsets = customCloseButtonEdgeInsets
}
if customCloseButtonConstraints != nil {
customCloseButton.addConstraints(customCloseButtonConstraints)
}
customCloseButton.translatesAutoresizingMaskIntoConstraints = true
view.addSubview(customCloseButton)
@ -360,23 +397,26 @@ public class SKPhotoBrowser: UIViewController, UIScrollViewDelegate {
}
}
private func setSettingDeleteButton() {
if displayDeleteButton == true {
deleteButton = UIButton(type: .Custom)
deleteButtonShowFrame = CGRect(x: view.frame.width - 44, y: 5, width: 44, height: 44)
deleteButtonHideFrame = CGRect(x: view.frame.width - 44, y: -20, width: 44, height: 44)
let image = UIImage(named: "SKPhotoBrowser.bundle/images/btn_common_delete_wh", inBundle: bundle, compatibleWithTraitCollection: nil) ?? UIImage()
if UI_USER_INTERFACE_IDIOM() == .Phone {
deleteButton.imageEdgeInsets = UIEdgeInsets(top: 15.25, left: 15.25, bottom: 15.25, right: 15.25)
} else {
deleteButton.imageEdgeInsets = UIEdgeInsetsMake(12.3, 12.3, 12.3, 12.3)
// MARK: Custom Delete Button
private func setSettingCustomDeleteButton() {
if displayCustomDeleteButton == true {
customDeleteButton = UIButton(type: .Custom)
customDeleteButton.backgroundColor = .clearColor()
customDeleteButton.addTarget(self, action: "deleteButtonPressed:", forControlEvents: .TouchUpInside)
// If another developer has not set their values
if customDeleteButtonShowFrame == nil && customDeleteButtonHideFrame == nil {
customDeleteButtonShowFrame = CGRect(x: view.frame.width - 44, y: 5, width: 44, height: 44)
customDeleteButtonHideFrame = CGRect(x: view.frame.width - 44, y: -20, width: 44, height: 44)
}
deleteButton.setImage(image, forState: .Normal)
deleteButton.addTarget(self, action: "deleteButtonPressed:", forControlEvents: UIControlEvents.TouchUpInside)
deleteButton.alpha = 0.0
view.addSubview(deleteButton)
deleteButton.translatesAutoresizingMaskIntoConstraints = true
deleteButton.autoresizingMask = [.FlexibleBottomMargin, .FlexibleLeftMargin, .FlexibleRightMargin, .FlexibleTopMargin]
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]
}
}
@ -687,6 +727,10 @@ public class SKPhotoBrowser: UIViewController, UIScrollViewDelegate {
self.customCloseButton.alpha = 1.0
self.customCloseButton.frame = self.customCloseButtonShowFrame
}
if self.displayCustomDeleteButton == true {
self.customDeleteButton.alpha = 1.0
self.customDeleteButton.frame = self.customDeleteButtonShowFrame
}
},
completion: { (Bool) -> Void in
self.view.alpha = 1.0
@ -715,6 +759,10 @@ public class SKPhotoBrowser: UIViewController, UIScrollViewDelegate {
self.customCloseButton.alpha = 1.0
self.customCloseButton.frame = self.customCloseButtonShowFrame
}
if self.displayCustomDeleteButton == true {
self.customDeleteButton.alpha = 1.0
self.customDeleteButton.frame = self.customDeleteButtonShowFrame
}
},
completion: { (Bool) -> Void in
self.view.alpha = 1.0
@ -956,6 +1004,10 @@ public class SKPhotoBrowser: UIViewController, UIScrollViewDelegate {
self.customCloseButton.alpha = alpha
self.customCloseButton.frame = hidden ? self.customCloseButtonHideFrame : self.customCloseButtonShowFrame
}
if self.displayCustomDeleteButton == true {
self.customDeleteButton.alpha = alpha
self.customDeleteButton.frame = hidden ? self.customDeleteButtonHideFrame : self.customDeleteButtonShowFrame
}
for v in captionViews {
v.alpha = alpha
}
@ -1086,6 +1138,9 @@ public class SKPhotoBrowser: UIViewController, UIScrollViewDelegate {
// FIXME: - when we will to resolve this problem https://github.com/suzuki-0000/SKPhotoBrowser/issues/22 it will need to remove
deleteButtonShowFrame = CGRect(x: view.frame.width - 44, y: 5, width: 44, height: 44)
deleteButtonHideFrame = CGRect(x: view.frame.width - 44, y: -20, width: 44, height: 44)
// I didn't add customDeleteButton frame here
// customCloseButtonShowFrame = customCloseButtonShowOldFrame
// customCloseButtonHideFrame = customCloseButtonHideOldFrame