【发布时间】:2015-10-29 01:14:27
【问题描述】:
我使用 UIButton 作为标签来在其标题中显示一些数字。每次调用该函数来重置此按钮的标题时,它都会闪烁。它不会影响功能,但会损害用户体验。我想知道是否有办法阻止 UIButton 的这种突出显示行为?
提前致谢!
编辑:以下是我只是调用委托方法updateDigits 来刷新按钮标题的代码。
class ViewController: UIViewController, UIPopoverPresentationControllerDelegate, DigitsEntryViewDelegate {
@IBOutlet weak var tipField1: UIButton!
@IBOutlet weak var tipField2: UIButton!
var buttonsArray = [UIButton]()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
self.tipField1.tag = 0
self.tipField2.tag = 1
self.tipField1.addTarget(self, action: "inputFieldClicked:", forControlEvents: UIControlEvents.TouchUpInside)
self.tipField2.addTarget(self, action: "inputFieldClicked:", forControlEvents: UIControlEvents.TouchUpInside)
self.buttonsArray.append(self.tipField1)
self.buttonsArray.append(self.tipField2)
}
func inputFieldClicked(sender: UIButton) {
let anchor: UIView = sender
let viewControllerForPopover = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("DigitEnter") as! DigitsEntryViewController
// set popover API values
viewControllerForPopover.currentDigitsString = sender.currentTitle
viewControllerForPopover.tagNumber = sender.tag
viewControllerForPopover.delegate = self
viewControllerForPopover.preferredContentSize = CGSizeMake(240, 320)
let popover = UIPopoverController(contentViewController:viewControllerForPopover)
popover.presentPopoverFromRect(anchor.frame, inView: anchor.superview!, permittedArrowDirections: UIPopoverArrowDirection.Down, animated: false)
}
func updateDigits(returnedDigits: String, tagNumber: Int) {
self.buttonsArray[tagNumber].setTitle(returnedDigits, forState: UIControlState.Normal)
}
}
【问题讨论】:
-
这种情况只发生在模拟器还是设备上?我会分享你的代码:你在哪里调用你的按钮来改变。
-
你应该在这里分享你的代码。按钮闪烁不是正常行为,因此代码中的某些内容可能会重新初始化按钮。
-
@App Dev Guy 我刚刚在设备上试用过,按钮也闪烁。
标签: ios swift cocoa-touch uibutton