`
jsntghf
  • 浏览: 2527627 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

弹出气泡的绘制

    博客分类:
  • iOS
阅读更多
#define kArrowHeight 10

- (id)initWithFrame:(CGRect)frame {
    self = [super initWithFrame:frame];
    
    if (self)
        self.backgroundColor = [UIColor clearColor];
    
    return self;
}

- (void)drawRect:(CGRect)rect {
    [self drawInContext:UIGraphicsGetCurrentContext()];
    
    self.layer.shadowColor = [[UIColor blackColor] CGColor];
    self.layer.shadowOpacity = 1.0;
    self.layer.shadowOffset = CGSizeMake(0.0f, 0.0f);
}

- (void)drawInContext:(CGContextRef)context {
    CGContextSetLineWidth(context, 2.0);
    CGContextSetFillColorWithColor(context, [UIColor colorWithRed:0.3 green:0.3 blue:0.3 alpha:0.8].CGColor);
    
    [self getDrawPath:context];
    CGContextFillPath(context);
}

- (void)getDrawPath:(CGContextRef)context {
    
    CGRect rect = self.bounds;
    CGFloat radius = 6.0;
    CGFloat minX = CGRectGetMinX(rect), midX = CGRectGetMidX(rect), maxX = CGRectGetMaxX(rect);
    CGFloat minY = CGRectGetMinY(rect), maxY = CGRectGetMaxY(rect) - kArrowHeight;
    
    CGContextMoveToPoint(context, midX + kArrowHeight, maxY);
    CGContextAddLineToPoint(context, midX, maxY + kArrowHeight);
    CGContextAddLineToPoint(context, midX - kArrowHeight, maxY);
    
    CGContextAddArcToPoint(context, minX, maxY, minX, minY, radius);
    CGContextAddArcToPoint(context, minX, minX, maxX, minY, radius);
    CGContextAddArcToPoint(context, maxX, minY, maxX, maxX, radius);
    CGContextAddArcToPoint(context, maxX, maxY, midX, maxY, radius);
    CGContextClosePath(context);
}

分享到:
评论

相关推荐

    Android studio实现点击按钮弹出气泡

    总的来说,实现“Android studio实现点击按钮弹出气泡”这一功能,需要掌握Android应用开发的基本概念,包括布局设计、事件处理、自定义View、动画和触摸事件等。通过学习和实践,开发者可以创建出富有创意且用户...

    高德地图-标记点点击弹出气泡

    本篇将深入探讨如何在高德地图中实现“标记点点击弹出气泡”的功能。 首先,我们要了解高德地图JavaScript API。这是一个用于开发基于Web的地理位置应用的工具集,允许开发者在网页中嵌入地图、设置图层、绘制图形...

    Delphi 气泡弹出源码

    "Delphi 气泡弹出源码"是一个关于在Delphi中实现气泡提示功能的代码示例。气泡提示通常用于提供用户界面(UI)中的临时信息或指导,它们会在鼠标悬停在特定控件上时短暂出现,然后自动消失。 在Delphi中实现气泡...

    用Dialog实现的主动弹出式气泡

    在给定的标题“用Dialog实现的主动弹出式气泡”和描述中,我们看到一个特定的需求:创建一个能够主动弹出的、具有气泡效果的Dialog。本文将详细讲解如何利用Dialog实现这一功能,以及涉及到的相关知识点。 首先,...

    android点击界面产生气泡,气泡效果~

    在这个场景下,我们可能会用到属性动画来实现气泡的弹出和消失效果。 1. **创建自定义View**: 为了实现气泡效果,我们可以创建一个自定义的View类,继承自`View`或`RelativeLayout`等布局。在自定义View中,绘制...

    Android-BubbleLayout弹出提示气泡

    2. 绘制箭头与气泡:使用Canvas对象,开发者可以利用`drawPath()`、`drawRect()`和`drawText()`等方法来绘制气泡的形状和箭头。需要精确计算各个几何图形的位置和大小,以确保箭头指向正确的UI元素。 3. 属性定制:...

    jquery绘制气泡墙

    7. **事件监听**:如果希望气泡有交互功能,例如点击气泡后弹出更多信息,可以添加事件监听器,如`.on('click', function() {...})`。 8. **响应式设计**:为了适应不同设备的屏幕尺寸,可能需要对气泡墙进行响应式...

    WPF气泡样式弹窗效果代码分享

    Path标签允许开发者以数学上的坐标形式绘制出复杂的图形,而PathGeometry则通过一系列的命令来定义这些形状。在示例中,通过"M"(Move to)和"L"(Line to)命令描述了气泡尖端的三角形状。 2. 使用Border元素来...

    vc编写的气泡弹出提示框

    在VC++编程环境中,创建一个类似QQ提示的气泡弹出框是一项常见的需求,它可以用于显示短暂的通知或者信息,而不打扰用户的主要工作流程。本文将详细介绍如何使用VC++实现这样的功能,以及涉及到的关键知识点。 首先...

    Raphael.js绘制气泡墙

    在实际项目中,可能还需要考虑用户的交互,比如点击气泡弹出更多信息,或者通过鼠标悬停改变气泡的样式。Raphael.js提供了事件监听功能,我们可以为气泡添加`mouseover`、`mouseout`和`click`事件处理函数,实现这些...

    swift -> 气泡弹出类 AMPopTip

    Swift中的AMPopTip是一种用于创建气泡提示效果的类,常用于实现类似iOS系统中的气泡弹出提示,如在用户交互时显示信息或者指导。这个库提供了丰富的自定义选项,包括动画效果、颜色、方向等,使得开发者可以轻松地在...

    ArcGIS教程:创建气泡图

    - 在弹出的对话框中,从图表类型的下拉菜单中选择“气泡图”。 - 这一步非常重要,因为它决定了后续的配置选项。 ##### 步骤3:选择数据源 - 从“图层/表”下拉菜单中选择包含所需数据的图层或表格。 ##### 步骤4...

    arcgis api for js 自定义弹出信息提示框

    在这个场景中,我们关注的是如何利用这个API来实现自定义的弹出信息提示框。弹出框在地图应用中常常用于展示详细信息,如图层特征的数据,或者提供用户交互的界面。 首先,ArcGIS API for JavaScript 提供了内置的...

    jQuery鼠标移动发出气泡动画

    通过以上步骤,我们就实现了鼠标移动时在Canvas上绘制气泡并跟随鼠标移动的动画效果。结合HTML5和jQuery的强大功能,我们可以创造出更多富有创意的交互式网页元素,提升用户在网站上的体验。同时,这种实践也加深了...

    Android自定义View实现QQ气泡效果

    本教程将探讨如何利用Android自定义View实现QQ气泡效果,包括手势拖动、贝塞尔曲线绘制以及动态的回弹和爆炸动画。 首先,我们要理解`自定义View`的概念。自定义View是在Android系统提供的基本View类基础上进行扩展...

    JS+CSS实现一个气泡提示框

    接下来,涉及到的关键CSS技术是制作一个三角形,这通常用作气泡提示框的箭头部分,用来指示提示框是从哪个元素中弹出的。三角形的制作利用了CSS的`border`属性,通过设置不同的`border`宽度和颜色,可以形成一个...

    arcgis api 3.x for js 地图加载多个气泡窗口展示源码

    arcgis api 3.x for js 地图加载多个气泡窗口展示源码,arcgis api 3.x 提供的 Popup默认只可以弹出一个,某些情况下,用户想加载弹出多个窗口,我一直看看能不能有什么途径,比如 arcgis api 3.x 拓展之类的,对其...

    VC右下角弹出框代码(Win32示例)

    在Windows编程中,右下角弹出框通常被称为系统托盘通知区域的气泡提示,是一种常见的用户界面元素。这个“VC右下角弹出框代码(Win32示例)”提供了一个实现这种功能的示例,适用于Visual C++(VC)开发环境,基于...

Global site tag (gtag.js) - Google Analytics