切割UIView,并只让局部响应点击事件

IOS可点击饼状图绘制 计算tap事件点击的坐标位于饼图什么位置,以响应饼图的点击事件,显示百分比。 立即下载
//
//  CutsomView.m
//  TestCutUIView
//
//  Created by liulibo on 13-9-17.
//  Copyright (c) 2013年 mac. All rights reserved.
//

#import "CutsomView.h"
#import <QuartzCore/QuartzCore.h>

@implementation CutsomView


- (void)dwMakeBottomRoundCornerWithRadius:(CGFloat)radius
{
    CGSize size = self.frame.size;
    CAShapeLayer *shapeLayer = [CAShapeLayer layer];
    [shapeLayer setFillColor:[[UIColor whiteColor] CGColor]];
    
    CGMutablePathRef path = CGPathCreateMutable();
    CGPathMoveToPoint(path, NULL, size.width - radius, size.height);
    CGPathAddArc(path, NULL, size.width-radius, size.height-radius, radius, M_PI/2, 0.0, YES);
    CGPathAddLineToPoint(path, NULL, size.width, 0.0);
    CGPathAddLineToPoint(path, NULL, 0.0, 0.0);
    CGPathAddLineToPoint(path, NULL, 0.0, size.height - radius);
    CGPathAddArc(path, NULL, radius, size.height - radius, radius, M_PI, M_PI/2, YES);
    CGPathCloseSubpath(path);
    [shapeLayer setPath:path];
    CFRelease(path);
    self.layer.mask = shapeLayer;//layer的mask,顾名思义,是种位掩蔽,在shapeLayer的填充区域中,alpha值不为零的部分,self会被绘制;alpha值为零的部分,self不会被绘制,甚至不会响应touch
}

- (id)initWithFrame:(CGRect)frame
{
    if (self = [super initWithFrame:frame]) {
       // [self dwMakeBottomRoundCornerWithRadius:50];
        
        [self d2];
    }
    return self;
}

-(void)d2{
    CAShapeLayer *shapeLayer = [CAShapeLayer layer];
    CGSize size = self.frame.size;
    [shapeLayer setFillColor:[[UIColor whiteColor] CGColor]];
    CGMutablePathRef path = CGPathCreateMutable();
    CGPathMoveToPoint(path, NULL, 10, 10);
     CGPathAddLineToPoint(path, NULL, 100, 0.0);
    CGPathAddLineToPoint(path, NULL, 150, 300);
    CGPathCloseSubpath(path);
    [shapeLayer setPath:path];
    CFRelease(path);
    self.layer.mask = shapeLayer;
}



// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
//- (void)drawRect:(CGRect)rect
//{
//    //NO.4画正方形边框
//     
//      CGContextRef context = UIGraphicsGetCurrentContext();  
//     
//     CGContextSetRGBStrokeColor(context, 0.5, 0.5, 0.5, 0.5);//线条颜色
//     
//     CGContextSetLineWidth(context, 2.0);
//     
//     CGContextAddRect(context, CGRectMake(2, 2, 270, 270));
//     
//     CGContextStrokePath(context);
    
//}

- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event{
    CGMutablePathRef path = CGPathCreateMutable();
    CGPathMoveToPoint(path, NULL, 10, 10);
    CGPathAddLineToPoint(path, NULL, 100, 0.0);
    CGPathAddLineToPoint(path, NULL, 150, 300);
    CGPathCloseSubpath(path);
    BOOL b = CGPathContainsPoint(path, NULL, point, YES);
    if (b) {
        return YES;
    }else
        return NO;
}

@end


iOS 绘制不规则图形,不错的添加点击事件的两种方法 iOS 绘制不规则图形,不错的添加点击事件的两种方法, 立即下载

相关推荐

iOS 绘制不规则图形,并且添加点击事件 的两种方法

iOS 绘制不规则图形,并且添加点击事件 的两种方法

CAShapeLayer的简单实用(2)

最近看到了一个网易新闻上不是很复杂的小效果,就是网易启动页右上角的跳过按钮,我们一起来感受一下。 对的,你没看错就是箭头所指右上角的那个小按钮,现在我们来尝试实现一下。由于该控件可以响应事件,所以我们让该该控件继承自UIButton来进行重写。 定义继承自UIButton的类SkipButton,然后使用CAShapeLayer来实现边缘的的动画。 1)首先我们来定义一个回调方法

王二东的博客 532

XGBoost调参新姿势:Bayesian优化实战指南(附完整代码)

本文详细介绍了如何使用Bayesian优化方法高效调优XGBoost模型参数。通过解析Bayesian优化核心原理和XGBoost关键参数,提供完整的实战代码示例,帮助读者掌握这一智能调参技术,显著提升模型性能。文章特别适合机器学习工程师和数据科学家阅读。

weixin_42536058的博客 366

请问各位斑竹,我发信时正文部分为何无法输入(点击光标无响应)?????

localhero的专栏 825

基于STM32 HAL库的L298N四驱电机PWM调速与方向控制实战

本文详细介绍了基于STM32 HAL库驱动L298N电机控制板实现四驱小车PWM调速与方向控制的实战方法。涵盖硬件连接、GPIO与定时器配置、PWM生成、方向控制逻辑及电源管理等核心内容,并提供代码优化与常见问题解决方案,帮助开发者快速实现高效稳定的电机控制。

jump7的博客 222

单片机按键识别篇---单击---双击----长按

  最近做一任务需要使用一个按键实现三种功能,分别是按键单击功能,按键双击功能和按键长按功能,可能之前没有接触过这类按键复用情况,顶多也只是简单识别单击和长按,没有想过双击以上按键功能,也是绞尽脑汁,想了半天,又上网看了些例程,算是对于按键的识别有点小小的了解,感觉这个功能挺实用,在此做个随笔。 一、思路   1.识别长按操作思路:我们使用系统定时器定时,然后让系统每过一段时间去扫描按键I/O...

weixin_30311605的博客 3660

UIView不响应点击事件

Xcode:11.4 iPhone 11 :13.4 在UIWindow上添加一个view,view添加UITapGestureRecognizer事件。但是点击view没有响应事件,研究了半天发现原因: view的frame等于window的bounds,事件不响应; view的高度减1或者y坐标上移1单位,事件响应。后经测试,移动值最小为0.3,事件就会响应。 如果一个view的frame等于...

u011248221的博客 3148

Dify 深度进阶:从入门到精通AI应用构建

《Dify进阶指南:从基础到高阶的AI应用开发技巧》 本文深入探讨Dify平台的高级功能与应用开发技巧。首先强调核心概念的深化,包括提示词工程进阶、知识库高效管理和模型参数优化。重点介绍智能体应用的开发方法,如何让AI具备自主规划与执行能力。同时讲解工作流编排、前端集成等实用技术,并分享应用运营优化、成本控制等实践经验。文章还展望了Dify生态的发展趋势,为开发者提供从基础到进阶的完整学习路径,助力打造更智能高效的AI应用。

同名公众号:dify实验室 1949

CAShapeLayer使用案例

一、使用CAShapeLayer实现复杂的View的遮罩效果 1.1、案例演示 最近在整理一个聊天的项目的时候,发送图片的时候,会有一个三角的指向效果,指向这张图片的发送者。服务端返回给我们的图片只是一张矩形的图片,我们如何把一张矩形的图片或者View,加上一层自定义遮罩效果,就是本文要讲的内容。效果演示如下:第一张是一个View的遮罩效果,第二张是UIImageView的遮罩效果。 演

要拼↗才会赢,努力↗才幸福 869

手把手教你用UM982搭建厘米级RTK定位系统(附避坑指南)

本文详细介绍了如何使用UM982模组搭建厘米级RTK定位系统,涵盖硬件连接、软件配置和深度优化技巧。UM982支持BDS、GPS、GLONASS和Galileo等多系统全频点信号,特别适合精准农业、无人机导航等高精度应用场景。通过实战案例和避坑指南,帮助开发者快速实现厘米级定位精度。

y7z8a的博客 1403

深度强化学习在机器人控制中的应用

非常感谢您提供如此详细的任务要求和约束条件。作为一位世界级的人工智能专家和计算机领域大师,我将全身心投入到这篇技术博客的撰写中。 深度强化学习在机器人控制中的应用 1. 背景介绍 近年来,随着人工智能技术的飞速发展,深度学习和强化学习在各个领域都得到了广泛应用,尤其是在机器人

AI天才研究院 1323

iOS 使点击事件穿透透明的UIView

通过实例讲解,如图(三个深灰色按钮处于同一个contentView中): 悬浮的三个按钮下方有一个可以点击的灰色区域,但是点击按钮之间的透明区域, 这三个按钮的contentView会响应这个点击事件,这时候需要让这个contentView不响应这个点击事件。 解决方法如下(将此方法增加到这个contentView类中即可): ...

weixin_30276935的博客 735

135、转动惯量辨识方法

<think>我们要求根据内容生成≤150字的文章摘要。内容是关于电机控制中转动惯量辨识的方法和工程经验。摘要需简洁概括核心:转动惯量重要性、三种方法(加减速法、正弦扫频、MRAS)、工程注意点(摩擦补偿、采样同步等)、实用建议(组合使用、滤波限幅、安全保护)。字数严格≤150。需要提炼。</think>转动惯量辨识是电机控制的关键,负载变化会导致速度环失稳。工程常用加减速法(简单可靠)、正弦扫频法(高精度)、MRAS在线辨识。实操需补偿摩擦、同步采样、控制激励幅度。建议混合使用,辨识结果需滤波限幅,并设置

2401_88858637的博客 38

ios UIButton的点击与松开事件处理

ios UIButton的点击与松开事件处理 按钮点击打印字符串也可以处理其他事件 按钮松开也打印字符串也可以处理其他事件 相关代码如下 #import "ViewController.h" @interface ViewController () @property (nonatomic, strong) U...

weixin_33712987的博客 875

第6章: MMU Notifier在KVM虚拟化中的应用

本文分析了KVM如何利用MMU Notifier机制维护客户机与宿主机地址映射一致性。KVM采用三层地址空间转换架构(GVA→GPA→HPA),通过硬件辅助虚拟化(EPT/NPT)实现高效转换。重点探讨了KVM MMU Notifier回调实现,包括invalidate_range_start/end等核心函数,以及HVA范围处理流程。当宿主机内存变化时,KVM通过注册的notifier回调及时更新映射关系,确保虚拟化环境的内存一致性。文章详细解析了相关数据结构和关键代码实现,揭示了KVM内存管理的核心机制

图形/计算GPU的驱动与虚拟化技术分享园地 2315

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

iOS 自定义view 是上面文字某区域有点击事件和点击背景效果

@interface HTXDyDetailCommentCell : UITableViewCell @property (nonatomic,strong) HJContentTextView * speciaView;   if (model.toMemberNick.length) {         //回复评论人的时候     

疯狂的程序猿的博客 3400

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

IOS 在UIView1 上添加UIView2或者UIbutton其他控件 点击事件不响应问题

这种情况的原因除了userInteractionEnabled属性 之外还有一个容易忽视的错误。检查UIView2的frame 是否大于UIView1的frame。如果UIView1 的frame 过小,那么用户就点击不到UIView1,此时虽然UIView2展示的大小没问题,但你始终是点击不到。原因就是UIView2在UIView1中超出了范围,超出范围的部分当然点击不到了。解决:修改重设UIV...

qq_32873193的博客 2476

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

绘制不规则图形并响应点击事件

需求 绘制一个不规则图形并能响应点击事件 思路 1.使用CAShapeLayer绘制图形 2.在点击屏幕时判断触摸点是否落在CAShapeLayer的path内部 实现 1.画出不规则图形的path: private func createPolygonPath() -> CGPath { let path = UIBezierPath() path.move...

weixin_33858485的博客 1509

子View不响应touch事件,让父View响应touch事件

在工作中遇到一个button上有一个uiImageview

独来独往天马行空 3228

IOS自定义控件某些区域无法点击的原因

答案很简单却花了我两个小时把布局拆开一个测出具体问题,答案就是自定义控件添加到父类只要没设置frame,超出父类还是能显示,但是超出父类的按钮将不能被点击

飞翔的熊blabla 690

iOS 为UIView设置点击监听事件

// In the view controller where you create the subviews // (not sure from your question, but I think you are adding image views to a scroll view UIView *view = [[UIView alloc] init]; UITapGestureReco

野草志 5142
上一篇: drawRect
下一篇: 百度 Java BAE
focusjava
博客等级 码龄14年 127粉丝 528原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值