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

每次单击按钮时,将UIButton旋转90度

可以通过以下步骤实现:

  1. 首先,您需要在您的应用程序中创建一个UIButton对象,并将其添加到您的用户界面中。您可以使用UIKit框架中的UIButton类来完成这个任务。
  2. 接下来,您需要为按钮添加一个点击事件的处理程序。您可以使用UIButton的addTarget(_:action:for:)方法来实现这一点。在这个方法中,您可以指定一个目标对象和一个选择器方法,当按钮被点击时,选择器方法将被调用。
  3. 在选择器方法中,您可以使用UIView的动画功能来实现按钮旋转的动画效果。您可以使用UIView的animate(withDuration:animations:)方法来实现这一点。在这个方法中,您可以指定动画的持续时间和动画的具体操作。
  4. 在动画的闭包中,您可以使用UIButton的transform属性来进行按钮的旋转操作。您可以使用CGAffineTransform类来创建一个旋转变换,并将其应用于按钮的transform属性。通过将按钮的transform属性设置为旋转变换,您可以实现按钮的旋转效果。

以下是一个示例代码,演示如何实现每次单击按钮时将UIButton旋转90度:

代码语言:txt
复制
import UIKit

class ViewController: UIViewController {
    var button: UIButton!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        // 创建按钮
        button = UIButton(type: .system)
        button.frame = CGRect(x: 100, y: 100, width: 100, height: 50)
        button.setTitle("旋转", for: .normal)
        button.addTarget(self, action: #selector(buttonTapped), for: .touchUpInside)
        view.addSubview(button)
    }
    
    @objc func buttonTapped() {
        // 执行按钮旋转动画
        UIView.animate(withDuration: 0.3) {
            self.button.transform = self.button.transform.rotated(by: .pi/2)
        }
    }
}

在这个示例代码中,我们创建了一个名为"button"的UIButton对象,并将其添加到视图中。然后,我们为按钮添加了一个点击事件的处理程序,当按钮被点击时,buttonTapped方法将被调用。在buttonTapped方法中,我们使用UIView的动画功能来实现按钮的旋转动画效果。通过将按钮的transform属性设置为旋转变换,我们将按钮旋转了90度。动画的持续时间为0.3秒。

这是一个简单的示例,演示了如何实现每次单击按钮时将UIButton旋转90度的功能。根据您的具体需求,您可以根据需要进行修改和扩展。

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

相关·内容

Quartz2D复习(四) --- 图层CALayer和动画CAAnimation

3)、在创建UIView对象,UIView内部会自动创建一个图层(即CALayer对象),通过UIView的layer属性可以访问这个层:@property (nonatomic,readonly,...retain) CALayer *layer; 4)、当UIView需要显示到屏幕上,会调用drawRect:方法进行绘图,并且会将所有内容绘制在自己的图层上,绘图完毕后,系统会将图层拷贝到屏幕上,于是就完成了...forControlEvents:UIControlEventTouchUpInside]; 66 [self.view addSubview:moveBtn]; 67 68 //4、添加X方向旋转按钮...UIControlEventTouchUpInside]; 74 [self.view addSubview:rotationBtnX]; 75 76 //5、添加Y方向旋转按钮...UIControlEventTouchUpInside]; 82 [self.view addSubview:rotationBtnY]; 83 84 //6、添加Z方向旋转按钮

1.4K30

《Motion Design for iOS》(四十二)

这不是一个简单实现的行为,因为即使你可以一个图片设为UIButton的UIControlStateHighlighted状态图,它也只会在点击发生后一小会启动,而且它不允许更进一步的代码来运行它。...如果我想要在用户点击一个UIButton后立即运行一个动画,我就不得不自己写一个简单的自定义按钮类。但首先,先来看一看我们要构建的是什么。...当子类化一个苹果提供的对象,比如UIButton,做一个好的城市居民并确保调用super的关于这些方法的实现是很重要的,因为我们不知道苹果在这两个方法中需要运行什么代码,而且不想破坏按钮的默认行为。...在这个例子中,我们动画了视图的尺寸,所以我们动画添加到视图上。 现在让我们在触摸事件结束做同样的事情。这次代码放在 -touchesEnded:withEvent:中。...的toValue以及触摸结束的1.0的toValue,你就可以猜到整个动画会在用户点击按钮稍微收缩按钮的尺寸,然后会在他们停止触摸弹回完整的尺寸。

35010
  • UIGestureRecognizer  手势识别一、概念介绍二、UIView 的分类三、UIGestureRecognizer 抽象类四、UIGestureRecognizerDelegate 代理

    nullable SEL)action; 4、指定一个手势需要另一个手势执行失败才会执行,同时触发多个手势使用其中一个手势的解决办法 有时手势是相关联的,如单机和双击,点击和长按,点下去瞬间可能只会识别到单击无法识别其他...requireGestureRecognizerToFail:(UIGestureRecognizer *)otherGestureRecognizer; 例子: // 关键在这一行,如果双击确定偵測失败才會触发单击...UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch; 例子:UITapGestureRecognizer和UIButton...) 1、旋转的角度 @property (nonatomic) CGFloat rotation; 2、旋转速度,单位:度/秒、 @property (nonatomic,readonly) CGFloat...recognizer.view.transform = CGAffineTransformRotate(recognizer.view.transform, recognizer.rotation); // 每次旋转完毕后

    3K81

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

    UIButton 详解 ( 1 ) 修改控件状态 ---- ( 2 ) 代码创建按钮并绑定事件 ---- 代码创建按钮并绑定事件 : 1.创建 UIButton 按钮 : ---- 二...., 然后点击按下状态, 大按钮显示另外一个背景图片; 3.上下左右按钮 : 点击四个按钮, 大按钮进行上下左右移动; 4.放大缩小按钮 : 点击放大, 大按钮放大, 点击缩小, 大按钮缩小; -...( 创建按钮 | 设置按钮属性 | 绑定事件 ) 代码生成按钮 : 1.创建按钮 并设置 frame 属性 : 创建 UIButton 对象, 调用 [UIButton buttonWithType:...按钮, 创建按钮需要制定按钮的 Type 类型, 一般情况下使用 Custom 类型, 并设置图片的 frame 属性 UIButton * button = [UIButton buttonWithType...- (IBAction)generateButton:(UIButton *)sender { //1.创建 UIButton 按钮, 创建按钮需要制定按钮的 Type 类型, 一般情况下使用

    4.9K30

    iOS开发中让UIButton上的image进行360度旋转

    https://blog.csdn.net/u010105969/article/details/79877908 背景: 在项目中的一个网页中有一个“换一换”按钮,点击更换页面上的书籍。...在原生页面也有一个“换一换”按钮,该按钮样式和功能都和网页中的“换一换”按钮一样。两者不同的是点击网页中的“换一换”按钮按钮上的图片会有一个360度旋转的动画效果,而原生的没有任何效果。...为了统一,要求在点击原生的“换一换”按钮,上面的图片也有一个360度动画旋转效果。...代码: - (void)changeAction:(UIButton *)changeBtn{ CABasicAnimation* rotationAnimation; rotationAnimation...旋转 本篇文章到这里就结束了,愿大家加班不多工资多,男同胞都有女朋友,女同胞都有男朋友。

    1.2K10

    按钮与交互-使用按钮触发操作

    在本节中,我们介绍一个重要且简单的元素,即按钮。这个小元素可以改变整个UX。我们将使用该按钮来缩放我们的3D模型。此外,我们尝试更改手机的壁纸。...在设置页面中,显示名称更改为角度AR或所需名称。在资产目录中,应用程序图标从assets文件夹拖放到选定的插槽中。 主要故事板 我们在屏幕上放置一些按钮。...在布局中,ARSCNView放在View下方,否则按钮将不会显示。 ? 约束 IBAction为 现在我们有了按钮,我们需要给它们功能。通过单击右上角带有双圆圈的图标启用助理编辑器。...由于我们删除了那个,新的ARSCNView链接到该Outlet。 让我们通过按住Control创建3个IBAction 并拖动ARSCNView Outlet 声明正下方的每个按钮。...选择:IBAction将它们命名为:plusButtonTapped,minusButtonTapped和placeScreenButtonTapped类型:UIButton ?

    4.6K20

    iOS_单元测试二之UITests

    app.wait(for: .runningForeground, timeout: 3) // resetAuthorizationStatus // 重置受保护资源的授权状态,以便下次访问该资源系统显示授权提示...// rotation: 旋转弧度 // velocity: 旋转姿态的速度(弧度/秒) element.rotate(5, withVelocity: 0.5) 查找: // 返回与指定类型匹配的元素的所有子代的查询...print("snapshot error: \(error)") } 4、XCUICoordinate XCUICoordinate屏幕上相对于某个UI元素的位置 // 创建并返回一个新的坐标,该坐标通过偏移量乘以元素帧的大小添加到元素帧的原点来计算其屏幕点...使用一个断言XCUIElement的状态与预期的参考状态进行比较。...@objc func clickSubscribeButton(sender: UIButton) { sender.isSelected = !

    79220

    iOS动画弹出式按钮

    弹出按钮旋转,并且到达最终位置后还会反弹一下,还是挺萌的哈哈。再次点击主按钮,主按钮会反向旋转回来,子按钮也会向下反向旋转着收回来。.../** * 初始化bar * 参数:mainButton:主按钮;buttons:子按钮数组;center:中心点 **/ - (id) initWithMainButton:(UIButton...- (void)setMainReRotate:(float)rotate; 设置收起按钮旋转到的角度。默认为45度。...- (void)setSpin:(BOOL)b; 设置弹出子按钮是否旋转按钮。默认为YES。 - (void)setEndY:(float)endy; 设置子按钮最终位置之间的高度距离。...注意:在创建主按钮,需要自行设置初始的alpha值,与此处设置的一般一致 - (void)setMainAnimationTime:(float)time; 设置主按钮旋转动画时间。

    93420

    【 iOS 应用开发 】 UIKit 控件 ( 代码生成控件 | UIView 属性方法 | Storyboard | Bundle | Property List | 动画 | 图片内存优化 )

    ) 代码生成 按钮 : 1.创建按钮控件 : 创建 UIButton 控件 , 需要制定按钮类型 , 这里创建 Custom 类型的控件 ; //1....创建 某种 Type 的 按钮 , 这里创建 UIButtonTypeCustom 类型的 按钮 UIButton * button = [UIButton buttonWithType:UIButtonTypeCustom... UIButton 添加到 根 View 中 [self.view addSubview:button]; } //为 生成的 按钮 绑定 点击事件 - (void) bindMethod{...设置按钮 禁用 启用 , index 为 1 和 5 分别启用 和 禁用 指定的按钮 , 其它情况下可以使用两个按钮 if(self.index == 1){ self.lastButton.enabled...设置按钮 禁用 启用 , index 为 1 和 5 分别启用 和 禁用 指定的按钮 , 其它情况下可以使用两个按钮 if(self.index == 1){ self.lastButton.enabled

    3.9K40

    【iOS 开发】基本 UI 控件详解 (UIButton | UITextField | UITextView | UISwitch)

    按钮示例 (1) 创建 Detail Disclosure 按钮 创建 Detail Disclosure 按钮 : UIButton 的 Type 属性类型是 Detail Disclosure;...(2) 创建 Add Contact 按钮 创建 Add Contact 按钮 : 设置 UIButton 的 Type 属性类型是 Add Contact; (3) 创建 Info Light |...Clear Button 属性 : 文本框右边的 x 标识按钮, 用户单击该图片, 清空文本框内容; -- Never appears : 不显示清除按钮; -- Appears while editing...editing begins 复选框 : 每次编辑文本框, 自动清除文本框中原有内容; (4) Min Font Size | Adjust to Fit 属性 Adjust to Fit 复选框...按钮设置到工具条中 :  //按钮放在集合中 NSArray * buttonArray = [NSArray arrayWithObjects:buttonItem, spaceItem

    6.8K20

    ug4入门教程

    图1-3  “新建部件文件”对话框 2.打开文件 在主菜单上依序选择【文件】→【打开】命令,或者单击工具栏上的“打开”按钮 ,系统弹出对话框。...UG在退出提示“是否真的要退出”,如图1-7所示,单击“是”按钮退出UG NX,并关闭窗口。 1.3  UG NX的操作界面 图1-8所示是UG NX的常见工作界面。...(6)导航按钮与导航器:当单击导航按钮,导航器会显示出来。导航器是让用户管理当前零件的一个树形界面。...(2)若在绘图区的图素上单击鼠标右键,则会弹出属性按钮,如图1-11(a)所示;而在进行各个命令操作,则会弹出与命令相对应的内容,如图1-11(b)所示为绘制直线捕捉点的快捷菜单。...图1-17  动态旋转 è STEP 5显示为线框方式 单击“视图”工具条中的显示方式下拉按钮(原显示项为“带边着色”),选择“带有变暗边的线框”,如图1-18所示,则模型显示为线框方式,如图1-19

    3.4K30

    proe之草绘

    草图的编辑包括有镜像、缩放、旋转、修改、撤销、重做、修剪。 2.1 镜像 镜像是以某一中心线为基准对称图形。“草绘”工具栏中按钮,以及主菜单“编辑”|“镜像”选项专门用于镜像一个已经存在的图形。...2.2 缩放和旋转旋转”就是所绘制的图形以某点为旋转中心旋转一个角度;“缩放”是对所选取的图元进行比例缩放。...撤销 在绘制草图,当用户发现之前的步骤有问题需要返回去操作,可以单击工具栏按钮或者直接按快捷键“Ctrl+Z”,或者依次点击主菜单“编辑”|“撤销XX”选项,其中的XX为上一步操作的具体名称。...重做 在绘制草图,需要恢复上一步撤销的操作,可以单击工具栏按钮或者直接按快捷键“Ctrl+Y”,或者依次点击主菜单“编辑”|“重做XX”选项,其中的XX为上一步撤销操作的具体名称。...单击“绘图”工具栏中的“约束”按钮,或依次选择“草绘”|“约束”选项,系统会弹出“约束”对话框,单击其中的按钮即可对图元进行约束设置。

    1.2K20

    VERICUT如何搭建车铣中心

    单击“组件”标签,在“颜色”下拉列表框中选择“3:Light Steel Blue(钢青色)”选项。单击旋转”标签。在“增量”文本框中输入“45”,再单击右侧的Z+按钮,如下图所示。...在配制组件刀具窗口单击旋转”标签。在“增量”文本框中输入“30”,再单击右侧Z-按钮单击“组件属性”标签。在“刀具索引”文本框中输入:“2”,如图所示。...在配制组件刀具窗口单击旋转”标签。在“增量”文本框中输入“30”,再单击右侧Z-按钮单击“组件属性”标签。在“刀具索引”文本框中输入“3”,如图所示。...单击“打开”按钮,如图所示。 没有刀具部件模型。然而,刀具数据是通过刀具管理器中的刀具库文件调用的。在车铣中心,全部的刀具在程序开始加载。每把刀具附属于不同的刀具部件。...单击旋转”标签,在“旋转中心”文本框中输入“0 0 107”。单击显示旋转中心。在“增量”文本框中输入“90”,单击右侧的Y-按钮,如图所示。 (9)保存机床文件。

    3.3K40

    36.Swift学习之Associated Object

    在使用 extension 扩展现有类的功能,使用Associated Object的方式,可以一个值 “关联” 到已有的要扩展的类上。该知识点在 iOS 开发中使用往往能优雅地解决很多问题。...,并且通过 & 操作符取地址并作为 UnsafeRawPointer 类型被传入,这在 Swift 与 C 协作和指针操作是一种很常见的用法。...{ // 通过objc_setAssociatedObject闭包保存 objc_setAssociatedObject(self, &AssociateKeys.key...((UIButton)->Void){ block(button) } } } UIButton 传参 项目开发中,经常会有类似九宫格的菜单按钮,每个按钮的点击的参数是不一样的...,此时可以有如下几种方案: 创建 9 个按钮,逐一设置 通过 for 创建 9 个 UIButton,为 UIButton设置不同的tag,然后在点击事件里面用 switch case判断 自定义UIButton

    2.1K20

    【iOS 开发】从 setNeedsLayout 说起

    UIKit interactions with your view objects 上图对应的事件序列如下: 用户触摸屏幕 硬件报告触摸事件给 UIKit 框架 UIKit 框架触摸事件打包成 UIEvent...---- 如何善用 View Drawing Cycle 一个很常见的例子是,一个 iPad App,横屏和竖屏界面布局不一样,那么你可以监听设备旋转,在设备旋转执行 setNeedsLayout...来调用 layoutSubviews 和 drawRect:) 但有些情况比较特殊:你打开 iOS 的时钟应用,去看里面的秒表页面,这个页面里面的两个按钮是没有...UIButton 默认的动画的,点击之后,按钮会瞬间改变自身的状态(颜色、内部 Label 的内容),这种情况我们需要跳出 View Drawing Cycle,来实现一个瞬间改变的效果。...实现方法如下: extension UIButton { func quickButtonAction() { UIView.performWithoutAnimation({

    70710

    CAD2007操作教程下

    “新建”:可以修改尺寸对象,此时系统显示“文字格式”工具栏和文字输入窗口,修改或输入尺寸文字后,选择需要修改的尺寸对象即可。 “旋转”可以尺寸文字旋转一定的角度。...1、选择“视图”菜单下“三维动态观察器”命令(BDORBIT)或单击 中的 三维动态观察按纽,可通过单击和拖动的方式,在三维空间动态观察对象。移动光标,其形状也随之改变,以指示视图的旋转方向。...选择“绘图”----“曲面”---“旋转曲面”命令(REVSURF),可以曲线绕旋转旋转一定的角度,形成旋转曲面。...确定 使用“绘图”|“实体”|“旋转”命令,二维对象绕某一轴旋转生成实体。用于旋转的二维对象可以是封闭多段线、多边形、圆、椭圆、封闭样条曲线、圆环及封闭区域。...三维对象、包含在块中的对象、有交叉或自干涉的多段线不能被旋转,而且每次只能旋转一个对象。

    8.6K30
    领券