ale*_*son 4 objective-c uikit uiview ios
在CSS中,pointer-events:none;允许单击事件通过元素.我很好奇我是否可以在iOS上UIView的Objective-C中做类似的事情.
我可以以某种方式 UIView 通过覆盖 实现相同的行为hitTest:withEvent:吗?或者也许有另一种方法可以做到这一点?
谢谢你的帮助.
too*_*ser 12
这是一个方便的实现,符合您最初的直觉:
#import "TouchTransparentView.h"
@implementation TouchTransparentView
-(id)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
id hitView = [super hitTest:point withEvent:event];
if (hitView == self) {
return nil;
} else {
return hitView;
}
}
@end
Run Code Online (Sandbox Code Playgroud)
Swift版本,带有@IB升级版
import UIKit
@IBDesignable
class PassthroughTouchView: UIView {
@IBInspectable var passthroughTouchEvents : Bool = false
override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? {
let hitView = super.hitTest(point, with: event)
if hitView == self && passthroughTouchEvents == true {
return nil;
} else {
return hitView;
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5231 次 |
| 最近记录: |