zoukankan      html  css  js  c++  java
  • iOS 按钮点击区域修改 button部分区域可以点击 修改点击区域

    比如

    一个按钮,只让中间点击区域点击有效,其他地方点击无效,重写UIButton的两个方法

    - (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event;

    - (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event

    - (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event{
        if (self.hidden ||
            self.alpha < 0.01 ||
            self.userInteractionEnabled  == NO) {
            return nil;
        }
        
        if ([self pointInside:point withEvent:event]) {
            
            __block UIView * hit = nil;
            
            [self.subviews enumerateObjectsUsingBlock:^(__kindof UIView * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
                
                //把点击的点转为子视图的坐标点
                CGPoint subConv = [self convertPoint:point toView:obj];
                
                hit = [self hitTest:subConv withEvent:event];
                
                if (hit) {
                     *stop = YES;
                }
               
            }];
            
            return hit != nil ? hit : self ;
            
        } else {
            return nil;
        }
    }
    
    - (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event {
        CGFloat clickX = point.x;
        CGFloat clickY = point.y;
        
        CGFloat centerX = self.frame.size.width / 2.0;
        CGFloat centerY = self.frame.size.height / 2.0;
        
        //直角三角形求斜角长度
        CGFloat distance = sqrt((centerX - clickX) * (centerX - clickX) + (centerY - clickY) * (centerY - clickY));
        
        if (distance < self.frame.size.width / 2) {
            return YES;
        } else {
            return NO;
        }
        
    }
  • 相关阅读:
    git 每次push和pull都需要提交密码
    git push时报错refusing to merge unrelated histories
    打包时,node内存溢出问题解决方法
    dva中roadhog版本升级后带来的问题及解决方法
    Android
    Python Model : glob 文件路径查找
    Tools info
    Python class
    Life Info
    Char 10 格式化及如何正确使用
  • 原文地址:https://www.cnblogs.com/huangzhenwei/p/13545149.html
Copyright © 2011-2022 走看看