编辑:示例:
- (UIVIEw *)hitTest:(CGPoint)point withEvent:(UIEvent *)event{ CGfloat radius = 100.0; CGRect frame = CGRectMake(-radius,-radius,self.frame.size.wIDth + radius,self.frame.size.height + radius); if (CGRectContainsPoint(frame,point)) { return self; } return nil;}
编辑2:(澄清后)为了确保按钮被视为在父的边界内,你需要重写pointInsIDe:withEvent:在父级包含按钮的框架。
- (BOol)pointInsIDe:(CGPoint)point withEvent:(UIEvent *)event{ if (CGRectContainsPoint(self.vIEw.bounds,point) || CGRectContainsPoint(button.vIEw.frame,point)) { return YES; } return NO;}
注意代码只是在那里重写pointInsIDe是不是很正确。正如Summon在下面解释,请执行以下 *** 作:
-(BOol)pointInsIDe:(CGPoint)point withEvent:(UIEvent *)event { if ( CGRectContainsPoint(self.oversizebutton.frame,point) ) return YES; return [super pointInsIDe:point withEvent:event]; }
注意,你很可能在此UIVIEw子类中使用self.oversizebutton作为IBOutlet;那么你可以拖动“超大按钮”的问题,到,有问题的特殊视图。 (或者,如果由于某种原因,你在一个项目中做了很多事情,你会有一个特殊的UIbutton子类,你可以通过你的子视图列表查找这些类。)希望它有帮助。
总结以上是内存溢出为你收集整理的iphone – 超越uiview的界限全部内容,希望文章能够帮你解决iphone – 超越uiview的界限所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)