实现功能:

点击向上的箭头,按钮图片向上,移动,点击向下的箭头,按钮图片向下移动

点击向左的箭头,按钮图片向左移动,点击向右的箭头,按钮图片向右移动,

点击加号图片放大,点击减号,图片缩小

第一步: 搭建界面,将控件分别连线

第二步: 将图片按钮连线

@property (weak, nonatomic) IBOutlet UIButton *headBtn;

第三步: 在每个按钮点击事件中实现向上,向下,向左,向右,放大,缩小的功能

//想上

- (IBAction)up:(id)sender {

//    NSLog(@"上");

//    self.headBtn.frame.origin.y = self.headBtn.frame.origin.y - 10;

//不能直接访问对象的结构体属性的成员变量

//能够直接访问对象的结构体属性

//    self.headBtn.frame

//1 取出对象的结构体属性frame 赋值给临时的变量

CGRect tempFrame = self.headBtn.frame;

//2 修改临时变量的值

//    tempFrame.origin.y = tempFrame.origin.y - 10;

//

tempFrame.origin.y -= 10;

//3 用临时变量的值覆盖原来的值

self.headBtn.frame = tempFrame;

}

//向下

- (IBAction)down:(id)sender {

//    NSLog(@"下");

//1 取出对象的结构体属性frame 赋值给临时的变量

CGRect tempFrame = self.headBtn.frame;

//2 修改临时变量的值

//    tempFrame.origin.y = tempFrame.origin.y - 10;

//

tempFrame.origin.y += 10;

//3 用临时变量的值覆盖原来的值

self.headBtn.frame = tempFrame;

}

/**

向左

*/

- (IBAction)left:(id)sender {

//    NSLog(@"左");

CGRect tempFrame = self.headBtn.frame;

//2 修改临时变量的值

//    tempFrame.origin.y = tempFrame.origin.y - 10;

//

tempFrame.origin.x -= 10;

//3 用临时变量的值覆盖原来的值

self.headBtn.frame = tempFrame;

}

/**

向右

@param sender <#sender description#>

*/

- (IBAction)right:(id)sender {

//    NSLog(@"右");

//1 取出对象的结构体属性frame 赋值给临时的变量

CGRect tempFrame = self.headBtn.frame;

//2 修改临时变量的值

//    tempFrame.origin.y = tempFrame.origin.y - 10;

//

tempFrame.origin.x += 10;

//3 用临时变量的值覆盖原来的值

self.headBtn.frame = tempFrame;

}

/**

放大

@param sender <#sender description#>

*/

- (IBAction)big:(id)sender {

//    NSLog(@"大");

CGRect tempFrame = self.headBtn.frame;

//2 修改临时变量的值

//    tempFrame.origin.y = tempFrame.origin.y - 10;

//

tempFrame.size.width += 10;

tempFrame.size.height +=10;

//3 用临时变量的值覆盖原来的值

self.headBtn.frame = tempFrame;

}

/**

缩小

@param sender <#sender description#>

*/

- (IBAction)small:(id)sender {

//   NSLog(@"小");

CGRect tempFrame = self.headBtn.frame;

//2 修改临时变量的值

//    tempFrame.origin.y = tempFrame.origin.y - 10;

//

tempFrame.size.width -= 10;

tempFrame.size.height -=10;

//3 用临时变量的值覆盖原来的值

self.headBtn.frame = tempFrame;

}

@end

iOS开发之按钮的基本使用的更多相关文章

  1. IOS开发之按钮控件Button详解

    reference:http://mxcvns.lofter.com/post/1d23b1a3_685d59d 首先是继承问题,UIButton继承于UIControl,而UIControl继承于U ...

  2. iOS开发--底部按钮和应用图标显示未读消息

    我们要实现的效果如下: 我们使用系统自带的,实际上,代码量很少,在我们要显示的按钮上,打上下面一句代码即可: self.tabBarItem.badgeValue = @"1"; ...

  3. IOS开发UISearchBar失去第一响应者身份后,取消按钮不执行点击事件的问题

    在iOS开发中,使用UISearchBar的时候,当搜索框失去焦点的时候,取消按钮是默认不能点击的,如图按钮的颜色是灰色的:  这是因为此时取消按钮的enabled属性被设置为NO了,那么当我们需要让 ...

  4. iOS开发UI篇—在UIImageView中添加按钮以及Tag的参数说明

    ios开发UI篇—在ImageView中添加按钮以及Tag的参数说明 一.tag参数 一个视图通常都只有一个父视图,多个子视图,在开发中可以通过使用子视图的tag来取出对应的子视图.方法为Viewwi ...

  5. ios开发UI篇—在ImageView中添加按钮以及Tag的参数说明

    ios开发UI篇—在ImageView中添加按钮以及Tag的参数说明 一.tag参数 一个视图通常都只有一个父视图,多个子视图,在开发中可以通过使用子视图的tag来取出对应的子视图.方法为Viewwi ...

  6. IOS开发中UIBarButtonItem上按钮切换或隐藏实现案例

    IOS开发中UIBarButtonItem上按钮切换或隐藏案例实现案例是本文要介绍的内容,这个代码例子的背景是:导航条右侧有个 edit button,左侧是 back button 和 add bu ...

  7. iOS开发 横向分页样式 可左右滑动或点击头部栏按钮进行页面切换

    iOS开发 横向分页样式 可左右滑动或点击头部栏按钮进行页面切换 不多说直接上效果图和代码 1.设置RootViewController为一个导航试图控制器 //  Copyright © 2016年 ...

  8. iOS开发系列--打造自己的“美图秀秀”

    --绘图与滤镜全面解析 概述 在iOS中可以很容易的开发出绚丽的界面效果,一方面得益于成功系统的设计,另一方面得益于它强大的开发框架.今天我们将围绕iOS中两大图形.图像绘图框架进行介绍:Quartz ...

  9. iOS开发之再探多线程编程:Grand Central Dispatch详解

    Swift3.0相关代码已在github上更新.之前关于iOS开发多线程的内容发布过一篇博客,其中介绍了NSThread.操作队列以及GCD,介绍的不够深入.今天就以GCD为主题来全面的总结一下GCD ...

随机推荐

  1. SharePoint 站点导航Web部件

    SharePoint 站点导航Web部件         SharePoint 站点导航Web部件可以以树状图显示站点层级关系.便于管理.         效果:点击子网站能够跳转过去.我这里建的少. ...

  2. JavaScript 风格指南

    来源于: https://github.com/alivebao/clean-code-js 目录 介绍 变量 函数 对象和数据结构 类 测试 并发 错误处理 格式化 注释 介绍 作者根据 Rober ...

  3. 【DeepLearning】Exercise:Softmax Regression

    Exercise:Softmax Regression 习题的链接:Exercise:Softmax Regression softmaxCost.m function [cost, grad] = ...

  4. 【C++】不要想当然使用resize

    #include <iostream> // std::cout #include <vector> // std::vector using namespace std; i ...

  5. Windows Sockets错误标识及对应解释

    WSAETIMEDOUT 对应 linux 的 ETIMEDOUT WSAETIMEDOUT 对应 linux 的 ETIMEDOUT IdWinsock2.pas 文件中也有说明. Windows ...

  6. YAML中重复的KEY的判断

    package com.test.util; import java.io.BufferedReader; import java.io.FileInputStream; import java.io ...

  7. SpringBoot中Redis的set、map、list、value、实体类等基本操作介绍

    今天给大家介绍一下SpringBoot中Redis的set.map.list.value等基本操作的具体使用方法 上一节中给大家介绍了如何在SpringBoot中搭建Redis缓存数据库,这一节就针对 ...

  8. windows Maven3.0 服务器配置搭建

    搭建nexus私服,原因很简单,不必多说,本文重点说下最新版的Maven 3.0.x系列的安装步骤. 最新版的网上中文资料很少,参考后都没成功.最后在官网的英文资料中得到答案,成功搞定. 1.确定我们 ...

  9. golang学习笔记 ---数组与切片

    数组: golang数组包含的每个数据称为数组元素(element),数组包含的元素个数被称为数组长度(length). golang数组的长度在定义后不可更改,并且在声明时可以是一个常量或常量表达式 ...

  10. 一个“蝇量级” C 语言协程库

    协程(coroutine)顾名思义就是“协作的例程”(co-operative routines).跟具有操作系统概念的线程不一样,协程是在用户空间利用程序语言的语法语义就能实现逻辑上类似多任务的编程 ...