大佬教程收集整理的这篇文章主要介绍了ios – UIButton之外的TouchUpInside边界,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
知道我在这里缺少什么吗?
(编辑:这是在Xcode 6 beta 3 BTW下.)
// ViewController.swift import UIKit class ViewController: UIViewController { let scrollView:UIScrollView = UIScrollView() var GWIDTH:Float = 0.0 var GHEIGHT:Float = 0.0 override func viewDidLoad() { super.viewDidLoad() GWIDTH = self.view.bounds.size.width GHEIGHT = self.view.bounds.size.height scrollView.frame = CGRectMake(10,10,GWIDTH-10,GHEIGHT-20) scrollView.contentSize = CGSize(width:GWIDTH-20,height: 0) self.view.addSubview(scrollView) for currentTag in 1...30{ var currentButton = UIButton.buttonWithType(UIButtonType.System) as UIButton currentButton.frame = CGRectMake(100,scrollView.contentSize.height,100,50) currentButton.BACkgroundColor = UIColor.greenColor() currentButton.settitle("Test Button \(currentTag)",forState: UIControlState.Normal) currentButton.tag = currentTag currentButton.addTarget(self,action: "buttonAction:",forControlEvents: UIControlEvents.TouchUpInsidE) scrollView.addSubview(currentButton) scrollView.contentSize = CGSize(width:GWIDTH-20,height:2.0+currentButton.frame.size.height+currentButton.frame.origin.y) }//next }// end viewDidLoad() func buttonAction(sender:UIButton!){ println("Button tapped: \(sender.tag)") } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() } override func prefeRSStatusBarHidden() -> Bool { return true } }
UIControlEventTouchDragExit triggers when 100 pixels away from UIButton
How to correctly subclass UIControl?
http://www.bytearray.org/?p=5336(特别是第89行)
…而且由于触摸界面似乎行为是标准的(个人我本能地发现默认区域过多但我确信Apple做了功课)并且可以通过子类化UIControl或询问位置来覆盖控制事件.
我选择了后者,这里是Swift中的一个实现:
// ViewController.swift import UIKit class ViewController: UIViewController { let buttonCount = 3 override func viewDidLoad() { super.viewDidLoad() for currentTag:Int in 1...buttonCount{ var currentButton = UIButton.buttonWithType(UIButtonType.System) as UIButton currentButton.frame = CGRectMake(50,Float(currentTag*50),120,forState: UIControlState.Normal) currentButton.contentEdgeInsets = UIEdgeInsets(top:3,left:6,bottom:3,right:6) currentButton.tag = currentTag currentButton.addTarget(self,action: "btn_TouchDown:",forControlEvents: UIControlEvents.TouchDown) currentButton.addTarget(self,action: "btn_TouchDragExit:",forControlEvents: UIControlEvents.TouchDragExit) currentButton.addTarget(self,action: "btn_TouchUpInside:event:",forControlEvents: UIControlEvents.TouchUpInsidE) currentButton.sizeToFit() self.view.addSubview(currentButton) }//next }// end viewDidLoad() func btn_TouchDown(sender:UIButton!){ println("TouchDown event: \(sender.tag)\n") } func btn_TouchDragExit(sender:UIButton!){ println("TouchDragExit event: \(sender.tag)\n") } func btn_TouchUpInside(sender:UIButton!,event:UIEvent!){ println("TouchUpInside event: \(sender.tag)") var currentTouch:CGPoint = event.allTouches().anyObject().LOCATIOnInView(sender) println( "Point: \(currentTouch.X),\(currentTouch.y)\n" ) if currentTouch.x > sender.frame.width{return} if currentTouch.x < 0 {return} if currentTouch.y > sender.frame.height{return} if currentTouch.y < 0 {return} println("Event ended within frame!") } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() } override func prefeRSStatusBarHidden() -> Bool { return true } }
以上是大佬教程为你收集整理的ios – UIButton之外的TouchUpInside边界全部内容,希望文章能够帮你解决ios – UIButton之外的TouchUpInside边界所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。