首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在自定义UIButton上获取抽头坐标?

在自定义UIButton上获取抽头坐标,可以通过以下步骤实现:

  1. 首先,在自定义UIButton的类中,重写touchesBegantouchesMovedtouchesEnded方法,以便在触摸事件发生时获取触摸点的坐标。
代码语言:swift
复制
class CustomUIButton: UIButton {
    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        super.touchesBegan(touches, with: event)
        if let touch = touches.first {
            let touchLocation = touch.location(in: self)
            // 获取触摸点的坐标
        }
    }

    override func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?) {
        super.touchesMoved(touches, with: event)
        if let touch = touches.first {
            let touchLocation = touch.location(in: self)
            // 获取触摸点的坐标
        }
    }

    override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) {
        super.touchesEnded(touches, with: event)
        if let touch = touches.first {
            let touchLocation = touch.location(in: self)
            // 获取触摸点的坐标
        }
    }
}
  1. touchesBegantouchesMovedtouchesEnded方法中,使用location(in:)方法获取触摸点相对于UIButton的坐标。
  2. 根据获取到的坐标,可以进行相应的处理,例如判断触摸点是否在UIButton的某个区域内。
  3. 如果需要将获取到的坐标转换为相对于其他视图的坐标,可以使用convert(_:to:)方法。
代码语言:swift
复制
let convertedTouchLocation = self.convert(touchLocation, to: self.superview)

通过以上步骤,可以在自定义UIButton上获取触摸点的坐标,并根据需要进行相应的处理。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

iOS开发之自定义表情键盘(组件封装与自动布局)

因为在封装自定义键盘中用到了自动布局所以横屏显示或者在更大的屏幕显示是没问题的,常用表情是用户用过的表情,然后存在Sqlite中,显示时并按时间降序排列。more是用来扩展功能用的接口。...在使用该组件时要传入要显示的图片和图片对应的文字(【哈哈】),当点击图片的时候,会通过block回调的形式把该图片的image以及图片文字返回到使用的组件中去,下面是关键代码:       FaceView.h...当横屏的时候键盘的坐标系和我们当前的Frame的坐标系不一样所以当横屏时得做一坐标系的转换,代码如下; 1 //当键盘出来的时候改变toolView的位置(接到键盘出来的通知要做的方法) 2 -(void...NSLog(@"%@", notification.userInfo); 5 6 self.keyBoardDic = notification.userInfo; 7 //获取键盘移动后的坐标点的坐标点...frame的坐标系不同,得做一个转换。

1.8K100
  • iOS8新特性扩展(Extension)应用之四——自定义键盘控件

    iOS8新特性扩展(Extension)应用之四——自定义键盘控件         iOS8系统的开放第三方键盘,使得用户在输入法的选择更加自主灵活,也更加贴近不同语言的输入风格。...一、了解UIInputViewController类         UIInputViewController是系统扩展支持键盘扩展的一个类,通过这个类,我们可以自定义一款我们自己的键盘提供给系统使用...首先,我们先来看一下这个类中的一些属性和方法: @property (nonatomic, retain) UIInputView *inputView; 键盘的输入视图,我们可以自定义这个视图。...系统要求我们对键盘的布局要使用autolayout,并且只可以采用代码布局的方式,我们这里为了简单演示,将坐标写死: - (void)viewDidLoad {     [super viewDidLoad...];          // 设置数字键盘的UI     //数字按钮布局     for (int i=0; i<10; i++) {         UIButton * btn = [UIButton

    1.2K10

    【 iOS 应用开发 】 UIKit 控件 ( UIView 属性 | storyboard 设置 | 模拟器 | 拖线关联 | tag | 软键盘操作 | 颜色值 | 代码生成控件 | 动画设置 )

    控件常见属性 ( 1 ) 修改控件状态 ( 2 ) UIView 属性 ( 3 ) UIView 坐标系 ( 4 ) UIView 常用操作控件方法 ( 5 ) 控件 与 坐标系 5....UIView 或 UIView 子类, 按钮 UIButton, 文字 UILabel 等都是继承自 UIView 的; 2.本质 : 每个 UIView 都可以当做一个容器, UIView 可以嵌套...UIView 坐标系 : 1.原点 : 左上角 的位置 是原点, 向右是 x 轴, 向下是 y 轴, 向右移动 x 轴坐标增加, 向下移动 y 轴坐标增加; ---- ( 4 ) UIView...; 4.设置 tag : 给 两个按钮分别设置 tag 为 1 和 2 ; 5.方法关联 : 将两个按钮都关联到同一个方法 , 注意这个方法必须能获取到按钮才可以 ; 6.获取...tag : 使用 sender.tag 即可获取 UIButton 标签 , 根据 tag 执行不同的逻辑 ; 控件关联的方法 , 是否传入 UIButton 控件 , 在于是否需要获取 按钮 相关资源

    4.9K30

    Objective-C MapKit的使用-LBS简单的租车主界面demo效果分析代码demo地址

    车辆信息view:根据当前点击的大头针显示对应的车辆信息 车辆类型选择view:选择车辆类型 交互分析 选择车辆类型,地图上出现不同的大头针 车辆信息view可滑动,滑动完成后地图定位到当前车辆的大头针...view的搭建 车辆选择view:自定义slider 分段滑竿(一篇文章提到过) 车辆信息View:使用uicollectionView的流水布局,做出分页效果 mapView:自定义大头针,根据类型选择不同的大头针图片...userLocationAnnotation = [[MyAnnotation alloc] init]; _userLocationAnnotation.type = CarTypeNone; //转火星坐标...Privacy - Location Always Usage Description 值随便填 //获取授权 - (void)getAuthorization { //获取授权状态 CLAuthorizationStatus...*carViewID = @"carViewID"; //从缓存池中获取自定义大头针 MKAnnotationView *annoView = [self.map dequeueReusableAnnotationViewWithIdentifier

    1.9K40

    iOS - 添加一个全局悬浮按钮

    需求设计图.png 思路: 由于要全局显示,所以必须加在最上层(window层) 由于需求图中有文字和背景图片,优先考虑UIButton(当然,如果有勇士非要用UIView,里面放imageView 和...label也o98k) 由于此图片不是半透明,会挡住后面的内容,所以这个标签必须可以拖动 - 考虑添加拖拽手势 本质可以理解为,创建一个UIButton,为其添加拖拽手势,然后将其添加到UIWindow...显示 ---- 知识1:按钮显示2行文字 //UIbutton的换行显示 button.titleLabel.lineBreakMode = NSLineBreakByWordWrapping; //...然后如同title的内容用包含“\n”就会换行 title = @“123\n666” 知识2:Version 与 Build号的获取 NSString *versionStr = [[[NSBundle...image.png 知识3:控件的移动 - 本质:坐标 ++ //拖动改变控件的水平方向x值 - (CGRect)changeXWithFrame:(CGRect)originalFrame point

    2.7K40

    iOS 9人机界面指南(四):UI元素(下)- 腾讯ISUX

    API注释 想要了解如何在代码中定义添加联系人按钮,请参考UIButton....API注释 想要了解如何在代码中定义信息按钮,可以参考UIButton. iOS包含了两种信息按钮样式:适用于浅色内容的深色按钮,以及适用于深色内容的浅色按钮。...想要了解更多如何在代码中定义系统按钮,可以参考 UIButton....文本框 高度固定,包含圆角 当用户点击它时,自动唤起输入键盘 可以包含系统提供的按钮,书签按钮(Bookmarks) 可以展示多种文字样式(了解更多请参考 UITextView) 使用文本框来获取用户输入的少量信息...你可以自定义一个文本框,帮助用户更好地理解如何使用它。举个例子,你可以在文本框的左侧或者右侧加入自定义图形,或者加入系统按钮,书签按钮等。

    13.2K30

    Super-Resolution

    这里可能大家会想起前面我们说过,帧间算法的运动补偿内插算法正好做了这么个步骤,所以我们就直接从这里获取结果即可。...Linear Upscaling AV1中的upscaler采用16分之1线性8抽头滤波器完成插值操作,在做upscale的时候,坐标对其是非常重要的一点,下面看一个图 ?...在这张图中,假设B是帧的宽度,P0, P1…这些是低分辨率帧一行的点,Q0, Q1,…这些是高分辨率帧一行的点,可以看出来,低分辨率帧一行的像素点的个数要少于高分辨率帧一行的像素点,所以低分辨率帧对高分辨帧的像素...0时,则高分辨率的起始像素mapping过去后的坐标为(D-W)/2W,接下来的Qm的offset即为 (D-W)/2W + m*(D/W) 实际实现时,offset有被细分为1/16384个像素,比原本的...1/16大了2的10次方倍,但是mapping到1/16384个像素后,最后也要被round到1/16这个层级来,最后再采用8抽头FIR滤波插值。

    99220

    跟iOS UI的捉迷藏(如何获取用户点击行为的控件title)

    近期,接到一个需求,需要获取用户点击行为的操作路径,除了点击的坐标,classname等常用数据外,还需要控件的title,这样就可以更加直观的了解到用户的操作行为。...1.如何获取用户控件的点击行为 事实,由于获取的“所见所得”点击view行为,所以,思路上应该是对uiview或者及其子类得某个事件方法hook到,这样触发点击(广义是触摸)行为后,可以根据发送的事件确定点击的...,还对不同控件的优先顺序进行了说明,这对比较复杂的自定义的UI是比较重要的。...先从简单的开始 一阶获取的控件:UIButton 响应的uiview是UIButton,即用户点击的是按钮,则立马获取(即一阶获取) NSString * title = [[button titleLabel...通过上面的获取,基本把父view和子view的关系搞清,层级可能比较多,但都可获取,但UISegmented是个例外 当我们点击“家具”这个segment时,获取是UISegmentedControl

    1.4K10

    36.Swift学习之Associated Object

    在使用 extension 扩展现有类的功能时,使用Associated Object的方式,可以将一个值 “关联” 到已有的要扩展的类。该知识点在 iOS 开发中使用往往能优雅地解决很多问题。...关键API /// 获取关联值 /// - Parameter object: 源对象,一般为 self,给谁关联参数,就填入谁 /// - Parameter key: 关键字,相当于一个标识,通过该标识可以拿到值...){ // 点击按钮,通过objc_getAssociatedObject获取之前保存的闭包并调用 if let block = objc_getAssociatedObject...,此时可以有如下几种方案: 创建 9 个按钮,逐一设置 通过 for 创建 9 个 UIButton,为 UIButton设置不同的tag,然后在点击事件里面用 switch case判断 自定义UIButton...,添加自定义属性 利用 Associated Object 绑定参数 class ViewController: UIViewController { // 不同的参数 let

    2.1K20

    iOS14开发-定位与地图

    通过这个框架可以实现定位进而获取位置信息经度、纬度、海拔信息等。 模块与常见类 定位所包含的类都在CoreLocation模块中,使用时必须导入。...CLPlacemark:位置信息,包含的信息国家、城市、街道等。 CLGeocoder:地理编码。 工作流程 创建CLLocationManager,设置代理并发起定位。...在成功的代理方法中获取CLLocation对象并通过CLGeocoder进行反向地理编码获取对应的位置信息CLPlacemark。 通过CLPlacemark获取具体的位置信息。...然后可以选择Debug—>Simulate Location或底部调试栏的定位按钮进行gpx文件或位置信息的切换。 <?xml version="1.0"?...location(in: mapView) // 将坐标转换成为经纬度,然后赋值给标注 let coordinate = mapView.convert(touchPoint!

    2.4K30

    【iOS 开发】iOS 开发 简介 (IOS项目文件 | MVC 模式 | 事件响应机制 | Storyboard 控制界面 | 代码控制界面 | Retina 屏幕图片适配)

    Model 模型 : Model 一般式普通的 Objective - C 类, 这些类用于保存 处理 数据; -- View 视图 : 使用 Interface Builder 创建的视图组件, ...通过 Tag 属性获取控件 (1) Tag 获取属性简介 通过 Tag 属性获取控件流程 :  -- 设置 UILabel 控件的 Tag 属性 : Command + option + 4 即可显示属性界面...; -- 获取 UILabel 控件 : 通过 viewWithTag : tag标签 获取 UI 控件的引用;  //使用 tag 获取 UI 控件 UILabel * label_tag...自定义 UI 控件 (1) 自定义组件简介 自定义组件简介 :  -- UIView 基类 : 所有的 UI 控件都继承了 UIView 基类, UI 组件在 UIView 提供的空白区域绘制具体的细节..., 使用 command + option + 3 打开身份检查器, 由身份检查器可以看到 其 Custom Class 属性为 UIView, 因此该界面的根控件时 UIView; -- 创建自定义

    4.9K30

    GNU Radio之OFDM Channel Estimation底层C++实现

    生成信道抽头(Channel Taps): 信道抽头是描述信道频率响应的复数值,这些复数值可以直接应用于信号解调和均衡过程中。在 OFDM 系统中,每个子载波的信道响应可以被视为一个抽头。...处理和传递元数据: 这个类还负责在GNU Radio的流图中处理和传递相关的元数据,信道估计结果和载波偏移信息。这些信息通常通过标签(tags)的形式添加到数据流中,供后续的处理块使用。...// 因此,我们需要从输入流中获取足够的数据来覆盖这两部分的需求。...// 计算并设置第一个输入流(索引为0)所需的输入项数 // (noutput_items / d_n_data_syms): 将预期的输出项数除以每组数据符号的数量,这个操作基本在计算为了生成所需的输出数量...初始化一个临时复数用于计算当前偏移量 g 下的相关性 gr_complex tmp = gr_complex(0, 0); // 对每个FFT长度内的点,如果相关向量在该点不为零,则计算该点在两个同步符号的相关性

    14110

    《Motion Design for iOS》(十五)

    从UIKit和CoreAnimation开始 通常情况下,iOS app中屏幕的物体都是UIView对象。它们是矩形的并且有坐标和大小来定义它们在屏幕的位置和尺寸。...包括作为界面按钮的UIButton、用来显示图片的UIImageView、显示文本的UILabel和显示列表的UITableView。你也可以通过绘制任何你想要的东西来完全自定义UIView。...电池等级视图(苹果控制) “汉堡包”菜单按钮 标题栏中的标题标签 改变子板的按钮 一个UITableViewCell视图,用来包含UITableView中一行的元素 UILabel中的帖子标题 评论数量UIButton...一个UIView本质是一个包含内部图形的矩形。在屏幕布局,靠近或在其他视图的顶部,还可能会有高级的透明效果来整合到一起或者快速绘制。...像你想象的一样,让大量的视图在屏幕移动确实是一个挑战,尤其是在一个小的,低功率的设备。 这就是为什么苹果公司开发了Core Animation。

    85640

    Quartz2D复习(三) --- 涂鸦

    一篇手势解锁不一样,手势解锁只画了一条路径,从触摸开始--》触摸移动--》触摸结束 ,然后路径完成了,渲染出来就是手势解锁了; 这次涂鸦想做到的效果是可以画很多次线段或弧,每次又可以设置不同的宽度和颜色...代码: 1、自定义PaintingBezierPath类继承自UIBezierPath类,增加一个自定义路径颜色的属性;自定义构造函数,设置颜色和路径宽度 PaintingBezierPath.h文件代码...[self currentPoint:touches]]; 45 46 [self setNeedsDisplay]; //调用方法,重新绘制 47 } 48 49 //获取...//1、开启图形上下文 82 UIGraphicsBeginImageContextWithOptions(self.bounds.size, NO, 0.0); 83 //2、获取当前上下文...114 //保存图片到相册 115 - (void)saveImgToAlbum{ 116 [self.paintV saveImgToAlbum]; 117 } 118 119 //返回一页

    67130

    AV1:下一代视频标准—约束定向增强滤波器

    如果你尝试设计这样一个怪异的滤波器,你很快就会遇到第一个关键的设计问题:当你的滤波器抽头位置不再横平竖直地坐落在网格排列的像素时,你如何“沿”水平和垂直以外的方向呢?...Daala(以及其他编解码器)中的定向变换可能是失败的,但这一研究恰好回答了之前提出的问题:如何在没有高昂代价的重采样步骤的情况下快速沿边缘滤波?答案是:不重新采样。通过沿最近的整像素移动来估算角度。...稀疏化并未预期的那样发挥作用。至少在我们实现的过程中,为使技术变得切实可行,稀疏化丢失了太多的信息。...滤波器抽头 CDEF滤波器在整个块逐个像素地工作。方向d选择要使用的特定方向滤波器,每个滤波器由一组滤波器抽头(即输入像素位置)和抽头权重组成。...总结为: 引入的(p)和(s)参数分别表示主要和次要抽头组的值。 还有一些不难理解的实现细节,四舍五入与修剪函数,都可以在完整的CDEF文件中找到。

    63820
    领券