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

如何让我的backgroundImageView成为可拖动的而不是主视图

要让一个backgroundImageView成为可拖动的而不是主视图,可以通过以下步骤实现:

  1. 首先,确保你的backgroundImageView是添加在一个父视图上,而不是直接添加在主视图上。这样可以确保backgroundImageView可以在父视图内进行拖动。
  2. 在代码中,为backgroundImageView添加拖动手势识别器。可以使用UIPanGestureRecognizer来实现拖动功能。例如:
代码语言:txt
复制
let panGesture = UIPanGestureRecognizer(target: self, action: #selector(handlePan(_:)))
backgroundImageView.addGestureRecognizer(panGesture)
  1. 实现拖动手势的处理方法。在这个方法中,你可以获取手势的移动距离,并将backgroundImageView的位置更新为手势的当前位置。例如:
代码语言:txt
复制
@objc func handlePan(_ gesture: UIPanGestureRecognizer) {
    let translation = gesture.translation(in: self.view)
    backgroundImageView.center = CGPoint(x: backgroundImageView.center.x + translation.x, y: backgroundImageView.center.y + translation.y)
    gesture.setTranslation(CGPoint.zero, in: self.view)
}
  1. 确保用户可以交互地拖动backgroundImageView,需要将backgroundImageView的isUserInteractionEnabled属性设置为true。例如:
代码语言:txt
复制
backgroundImageView.isUserInteractionEnabled = true

通过以上步骤,你可以让backgroundImageView成为可拖动的而不是主视图。用户可以通过拖动手势在父视图内自由移动backgroundImageView的位置。

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

相关·内容

如何成为有创意设计师,不是艺术家?

有时设计做很好,用户使用时很难发现设计哪儿不对,因为他们设计形式你只注意到如何去使用它们,不是观察他们设计得如何美观。...作为一种文化,我们推崇最美观设计,却不是更实用设计。 很容易就能看出,设计师们到底在做什么,总是人摸不着头脑。...为什么那么多设计师把艺术和设计混为一谈认为,许多设计师追求艺术不是设计部分原因是希望在工作和过程中注入创造力。...设计创造性并不是为了推动事物试图突破边界,也不是为了与众不同改变事物风格。...许多人可能会认为这些精心设计产品“缺乏创造力”,但其他人会指出并解释这些相似性如何使设计对象实现其预期目标。 研究一再表明,为了改变事物改变事物是如何损害设计对象

46520

不是修电脑!新年餐桌上,如何老妈搞懂自己“技术”工作

这篇文章里,让我们尝试用最通俗易懂方式-一家烘培店,向餐桌上朋友和亲人解释技术相关基本概念。既然是在餐桌上,身为吃货我们,就用吃来解释这一切吧! 先来聊聊公司背景 你公司是一家烘焙店。...1、产品经理 你任务是弄清楚面包店整体经营策略,或者某种面包烘焙策略,比方说烘焙时加什么香料,有什么特色,或者面包店应该提供什么新东西。 到了开发产品时,你代表客户声音。...你负责整合顾客反馈并提出新想法(可能是新口味或全新糕点种类),为了确保面包房知名度达到你预期规模和质量,你需要做出决策。...你不是面包师或厨师管理者,你只管理面包店烘焙食物:什么时候发售,推出它目标是什么,它目标受众是谁。...你还需要不断给团队提供信息,确保面包店客源不会流失。 如何工作? APIs 烤箱上刻度盘。 Cloud云 一个大型网络烤箱,可以帮助你快速地向世界各地提供商品。

73330

关注数据不是模型:如何赢得吴恩达首届 Data-centric AI 竞赛

这次竞赛共有489个参赛个人和团队提交了2458个独特数据集。仅仅通过改进数据(不是模型架构,这是硬标准),许多参赛者能够将64.4%基准性能提高20%以上。...在此,很高兴能和大家分享如何凭借“数据增强(Data Boosting)”技术获得最佳创新奖。...这场竞赛真正独特之处在于,与传统 AI 竞赛不同,它严格关注如何改进数据不是模型,从个人经验来看,这通常是改进人工智能系统最佳方式。...最初使用这个电子表格来识别标记错误图像和明显不是罗马数字 1-10 图像(例如,在原始训练集中就有一个心脏图像)。 现在我们来看看“数据增强”技术。...v=FnFksQo-yEY&t=1316s 当我最初考虑这种“数据增强”方法时,需要弄清楚如何自动生成大量新候选图像作为来源。决定尝试随机增强原始训练数据,以生成大量增强图像作为候选来源。

65240

如何每次运行程序时,都会将数据添加到对应keys中,不是重新创建一个dict啊?

大家好,是Python进阶者。...一、前言 前几天在Python最强王者交流群【 】问了一个Python项目实战问题,问题如下:请问,如何每次运行程序时,都会将数据添加到对应keys中,不是重新创建一个dict啊。...如果你也有类似这种Python相关小问题,欢迎随时来交流群学习交流哦,有问必答! 三、总结 大家好,是Python进阶者。...这篇文章主要盘点了一个Python项目实战问题,文中针对该问题,给出了具体解析和代码实现,帮助粉丝顺利解决了问题。...最后感谢粉丝【 】提出问题,感谢【东哥】给出思路,感谢【莫生气】等人参与学习交流。

9810

React Native 新架构是如何工作

但是,React Native 渲染是通用平台视图(宿主视图不是 DOM 节点(可以认为 DOM 是 Web 宿主视图)。Fabric 渲染器使得渲染宿主视图变得可行。...(译注:后面线程模型有解释) React 元素树和元素树中元素并不是一直存在,它只一个当前视图描述,最终是由 React “fiber” 来实现。...为了更新任意 React 影子节点,渲染器会创建了一棵新 React 影子树。为了状态更新更高效,渲染器提供了 clone 操作。更多细节参考后面的 React 状态更新部分。...虽然,这种优化渲染器少创建和渲染两个宿主视图,但从用户角度看屏幕内容没有任何区别。...这意味着,在渲染器中 React 每次更新都会重新创建或复制新对象,不是更新原有的数据结构。这是框架把线程安全和同步 API 暴露给 React 前提。

2.7K10

android画图之贝塞尔曲线讲解

首先对于《赛贝尔曲线》不是很了解童鞋,请自觉白度百科、google等等......,一般矢量图形软件通过它来精确画出曲线,贝兹曲线由线段与节点组成,节点是拖动支点,线段像伸缩皮筋; 上面这一段话其实就“线段像伸缩皮筋”这一句比较重要,也很容易理解;         至于贝赛尔曲线实现...; 熟悉方法后,下面就来实现: SurfaceView框架不多讲,看过博客都应该知道; 直接看MySurfaceView类,此类继承SurfaceView ,是游戏主视图 这里为了更清晰讲解:...这里简单统一讲操作点设置成用户触屏点x,y一半,呵呵偷懒了~嘻嘻~ 把贝赛尔操作点写在了逻辑logic()函数中,不断执行,并且每次利用nextInt函数得到随机操作点,主要为了其曲线不断变化从而形成一个震动曲线运动轨迹...这里可能由于图片是静止效果看起来不是很明显,大家可以运行源码来观察 ,好了~本节就这样吧;下面贴出整个MySurfaceView源码:(最后有本项目的源码下载地址) package com.qpath

1.2K70

使用 IOC 控制反转和 DI 依赖注入意义

通过问问题方式小伙伴了解这么做意义 在开始之前就可以告诉小伙伴使用容器注入缺点了,尽管这很有争议 内存泄漏 降低性能 那是否 IOC 控制反转意味着一定需要配合 DI 依赖注入?...,具体编辑模式和播放模式等都有继承这个接口实现 interface 拖动业务接口 { } class 编辑模式下拖动业务 : 拖动业务接口 { } class 播放模式下拖动业务 :...,但我又给你挖一个坑 产品大佬说,还要做一个叫 图片元素 业务,这个 图片元素 也是需要有和形状一样拖动业务 有趣不,如果用解决形状元素问题来解决图片元素问题,那么是不是咱需要创建一个叫 图片元素工厂...随着咱不断复杂业务逻辑,如何拆分才能降低耦合?如何更好利用面向对象多态?...更工程化问题还包含了如何可以业务更好支持自动化测试 如上面的代码,期望在单元测试时候支持测试元素在拖动业务,期望传入一个虚拟拖动业务逻辑以进行无 UI 和交互自动化测试,能不能做到?

89610

Laravel基础-关于引入公共文件两种方式

views下则为子视图。 二、在layouts下建立home.blade.php主视图文件。可以供子视图调用。...三、在views目录下layout.blade.php中引入主视图文件:采用继承方式: home主视图里: <div class="container" <!...-- @yield('content') -- yield是一个标识,标识是不一样变量数据 @section('content') <b 是主模板里内容</b...@show //在主视图想获取子视图变量数据情况下,必须使用show关键字不是endsection 子视图里: //继承使用主视图 @extends('layouts.home') //section...--@parent-- //parent意为:子模板可以获取主模板里内容 是layout替换内容123 @endsection 以上这篇Laravel基础-关于引入公共文件两种方式就是小编分享给大家全部内容了

1.3K52

iOS透明导航栏平滑过渡(进阶版)引实现过程结

很多App做法其实比较粗糙,类似于我在传送门:iOS导航栏切换界面时隐藏和显示中做法,需要导航栏透明时,直接将导航栏隐藏起来。...这两个矛盾没有想到可以调和手段,除非在业务上就不显示Tabbar了,但始终不是长久之计。...设置导航栏背景透明度 导航栏上应该是有很多view,我们要做是只背景透明,保留标题、返回按钮。iOS没有直接给我们提供对于导航栏背景view访问途径,那么我们只能自己来找了。...,包括返回按钮,因为没有给导航栏添加任何其他按钮,所以这里一定是返回按钮,下属 UILabel 就是 “返回” 两个字了。...= nil && backgroundImageView.image !

2.9K40

-StatefulWidget打开方式

=20;`时会报错 这真是人不爽,对象更改属性不是天经地义吗?...,让我们感觉里面的人是活,世界是运动 这其中化腐朽为神奇关键就是如何持续渲染,就像电影如何连续一帧帧播放 这时状态类中setState()应声而出,交给我,只要喊一声,就为你们更新状态...之后渐渐发现面向对象魅力,不知你们对万物皆对象如何理解,这里说一下看法: 万物皆对象并不是站在人类角度说世间实体都是对象,而是站在另一个维度 一个应用便是一个小世界,里面有众多对象相互协调合作...三个词: 易复用、好维护、拓展 这三个词会伴随Coder编程生涯,如何自己创造世界更好运作,是我们殚精竭虑 从设计模式到数据结构,从编码到重构,我们努力调整维持这个世界秩序,它们脱离...直到现在Flutter出现了,它带着React风采出现在移动端,甚至全端 Flutter中对于界面感觉非常友好,虽然刚来时一堆括号嵌套人难以适应,但渐渐你会发现他美 Widget认为界面上元素都成为组件

1.1K10

Android入门基础教程(小白速成1)

大家好,又见面了,是你们朋友全栈君。...项目新建按照需求来就好,这里选用空界面(Empty Activity)和Android 4.0.3,大家一定要注意安卓版本匹配问题鸭,之前每次新建项目都报错,最后才发现是版本匹配问题。...新建好项目以后,我们首先认识几个主要用到界面。 MainActivity.java页面,这个页面相当于我们主视图。 res文件夹是资源文件配置文件。...开始添加组件 我们添加组件操作是在activity_main.xml上通过拖动完成 最左下角design视图里,我们能通过拖动左边组件,放在右边界面上。...拖动后可能会报错,如下图 只需要在右侧布局中点击组件周围加号,给它固定位置即可 点击按钮响应 我们可以向页面中拖入button,自然需要点击按钮时还有一定响应。

1K20

IOS开发之绝对布局和相对布局(屏幕适配)

相对定位则不同,相对定位是参考组件周围元素来确定组件大小或位置,相对定位即约束和周围组件距离来布局,即layoutConstraint....我们如何在3.5寸屏上也显示正常呢,接下啦就是相对布局出出场时候了,我们用相对布局方式把最下面的view位置改为相对于主视图底部和左边像素值固定,同时设置slider位置相对于下面的view...那么如何用相对布局实现上面那种view放大效果呢,接下来我们需要新建一个工程,因为相对布局和绝对布局在同一个组件中无法并存。...绝对布局直接改frame坐标值就可以啦,那么在程序中我们如何去动态改变我们约束值呢?下面的代码将会用到。...)sliderChange:(id)sender {     //为了避免冲突移除myView水平和垂直约束,注意是从主视图上移除,因为约束是加载我们主视图上,即相对于我们主视图     [self.view

2.2K60

Demoo使用秘籍,比好用更好用 - 腾讯ISUX

涉及技巧:图片排序 Demoo支持我们对图片进行拖动排序整理,在标题栏区域鼠标停留,即可发现鼠标指针变为十字型,此时拖动页面。...设置页面滑动手势 涉及技巧:双击手势区域,快速设置手势热点 大屏幕手机越来越泛滥时候,手势滑动成为一个很常见操作,Demoo也可以模拟手势操作哦!...如图示,将点歌台呼起页面出现形式,设定为从下往上出。如果不是很确定切换效果,Demoo很细心在这里设计了动画预览,鼠标停留在小方块上时,会有微动画示意,多看几遍也就明白了。 ?...有一个技巧是,可以将原型添加到桌面,且只要设置好,Demoo可以做到app图标和闪屏完整模拟,你体验从手机桌面打开app真实感!...最后,听说很多试用过朋友都在询问,如何在Demoo中模拟浮层效果,Demoo其实更擅长是页面之间跳转,那么如何模拟呢?这里给大家一个小技巧。

1.5K40

再见,干净代码

同事刚刚提交了他们整个星期一直在编写代码。我们正在开发一个图形编辑器画布,他们实现了通过拖动边缘小手柄来调整矩形和椭圆等形状大小。 代码运行正常。 但它是重复。...如果我们想要改变特定方向或形状行为,我们可以在一个地方完成,不是到处更新方法。 已经很晚了(太过分了)。将我重构提交到主分支并上床睡觉,为自己整理同事混乱代码能力感到骄傲。...一旦我们学会了如何创建抽象,就很容易因为这种能力陷入沉迷,并且在看到重复代码时随意地创造出抽象。编程几年后,我们会发现重复无处不在——抽象成为了我们新超能力。...抽象化将变得更加复杂数倍才能应对这些情况,原始“混乱”版本则可以轻松地进行此类更改。 是说你应该写“肮脏”代码吗?不是的。建议你深入思考当你说“干净”或者“肮脏”时,你到底意味着什么。...不要成为一个痴迷于清洁代码的人。清洁代码并非目标,而是试图从我们所处理庞大复杂系统中找出一些意义尝试。当你还不确定某个变化会如何影响代码库时,它是一种防御机制,帮助你在未知领域中寻求指导。

6010

前端里拖拖拽拽了解一下?

元素是否允许被拖放且响应 API 操作依赖于 draggable[2] 全局标签属性 draggable 是一个布尔值类型标签属性: true:元素可被拖拽 false:元素不可拖拽 当元素设置了...dragendondragend当拖动元素被释放(️松开、按键盘 ESC)时拖拽dragenterondragenter当拖动元素到一个释放目标元素时放置dragexitondragexit当元素变得不再是拖动操作选中目标时放置...dragleaveondragleave当拖动元素离开一个释放目标元素放置dragoverondragover当元素被拖到一个释放目标元素上时(100 ms/次)放置dropondrop当拖动元素在释放目标元素上释放时放置...也就是说,如果不阻止放置元素 dragOver 事件,则放置元素不会响应“拖动元素”“放置行为” // 绑定该事件元素支持放置 function handleDragOver(e) { //...1.3 DataTransfer 在上述事件类型中,不难发现,放置元素和拖动元素分别绑定了自己事件,如何将拖拽元素和放置元素建立联系以及传递数据?

4.7K30

把大象P转身只需拖动鼠标,华人一作DragGAN爆火

机器之心报道 编辑:蛋酱、小舟 如果甲方想把大象 P 转身,你只需要拖动 GAN 就好了。 在图像生成领域,以 Stable Diffusion 为代表扩散模型已然成为当前占据主导地位范式。...例如,狮子「转头」并「开口」: 还能轻松小猫 wink: 再比如,你可以通过拖动操纵点,单手插兜模特把手拿出来、改变站立姿势、短袖改长袖。...也有人觉得,这个方法也可能会成为未来 PS 一部分。 总之,观感就是一句话:「看到这个,脑袋都炸了。」...与传统形变方法不同是,本文变形是在 GAN 学习图像流形上进行,它倾向于遵从底层目标结构,不是简单地应用扭曲。...可以看出,性能对_1 选择不是很敏感,_1=3 性能略好。 讨论 掩码影响。

61920
领券