Swift语言之View,Button控件实现小方块在界面上的移动(纯代码实现)
import UIKit
class ViewController:
UIViewController {
var diamonds:UIView!
var diamondsXY = CGRectMake(0,200,50,50)
override func viewDidLoad() {
super.viewDidLoad()
//定义一个方块
diamonds = UIView(frame:
diamondsXY)
diamonds.backgroundColor =
UIColor.redColor()
self.view.addSubview(diamonds)
//定义向上移动的按钮
var btUp:UIButton =
UIButton.buttonWithType(UIButtonType.System)
as UIButton
btUp.frame =
CGRectMake(0,30,80,20)
btUp.setTitle("UP",forState:UIControlState.Normal)
btUp.addTarget(self,action:"upMove:",forControlEvents:UIControlEvents.TouchUpInside)
self.view.addSubview(btUp)
//定义向下移动的按钮
var btDown:UIButton =
UIButton.buttonWithType(UIButtonType.System)
as UIButton
btDown.frame =
CGRectMake(50,30,80,20)
btDown.setTitle("Down",forState:UIControlState.Normal)
btDown.addTarget(self,action:"downMove:",forControlEvents:UIControlEvents.TouchUpInside)
self.view.addSubview(btDown)
//定义向左移动的按钮
var btLeft:UIButton =
UIButton.buttonWithType(UIButtonType.System)
as UIButton
btLeft.frame =
CGRectMake(100,30,80,20)
btLeft.setTitle("Left",forState:UIControlState.Normal)
btLeft.addTarget(self,action:"leftMove:",forControlEvents:UIControlEvents.TouchUpInside)
self.view.addSubview(btLeft)
//定义向右移动的按钮
var btRight:UIButton =
UIButton.buttonWithType(UIButtonType.System)
as UIButton
btRight.frame =
CGRectMake(150,30,80,20)
btRight.setTitle("Right",forState:UIControlState.Normal)
btRight.addTarget(self,action:"rightMove:",forControlEvents:UIControlEvents.TouchUpInside)
self.view.addSubview(btRight)
}
func upMove(sender:
UIButton)// 调用向上移动的方法
{
var c = diamonds.frame
if c.origin.y ==
{
return
}
else
{
var newXY = CGRectMake(c.origin.x,c.origin.y -
10,c.size.width,c.size.height)
diamonds.frame = newXY
}
}
func downMove(sender:
UIButton)// 调用向下移动的方法
{
var c = diamonds.frame
if c.origin.y ==
{
return
}
else
{
var newXY = CGRectMake(c.origin.x,c.origin.y +
10,c.size.width,c.size.height)
diamonds.frame = newXY
}
}
func leftMove(sender:
UIButton)// 调用向左移动的方法
{
var c = diamonds.frame
if c.origin.x ==
{
return
}
else
{
var newXY = CGRectMake(c.origin.x -
10,c.origin.y,c.size.width,c.size.height)
diamonds.frame = newXY
}
}
func rightMove(sender:
UIButton)// 调用向左移动的方法
{
var c = diamonds.frame
if c.origin.x ==
{
return
}
else
{
var newXY = CGRectMake(c.origin.x +
10,c.origin.y,c.size.width,c.size.height)
diamonds.frame = newXY
}
}
// Do any additional setup after loading the view, typically from a nib.
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
Swift语言之View,Button控件实现小方块在界面上的移动(纯代码实现)的更多相关文章
- [原创]在Framelayout中放置button控件出现的覆盖问题
android Framelayout(帧布局)是很常用的布局,主要用来处理需要多个view叠加显示的情况. 然而在使用中,我发现Framelayout中的Button控件,会挡住所有其他控件,而不论 ...
- listView中的button控件获取item的索引
在listview中的listitem设置事件响应,如果listitem中有button控件,这时候listitem就不会捕获到点击事件,而默认的是listitem中的button会捕获点击事件.那么 ...
- 【Android开发日记】之入门篇(十四)——Button控件+自定义Button控件
好久不见,又是一个新的学期开始了,为什么我感觉好惆怅啊!这一周也发生了不少事情,节假日放了三天的假(好久没有这么悠闲过了),实习公司那边被组长半强制性的要求去解决一个后台登陆的问题,结果就是把 ...
- Xamarin XAML语言教程构建ControlTemplate控件模板 (四)
Xamarin XAML语言教程构建ControlTemplate控件模板 (四) 2.在页面级别中构建控件模板 如果开发者要在页面级别中构建控件模板,首先必须将ResourceDictionary添 ...
- Xamarin XAML语言教程构建ControlTemplate控件模板 (二)
Xamarin XAML语言教程构建ControlTemplate控件模板 (二) (2)打开MainPage.xaml文件,编写代码,将构建的控件模板应用于ContentView中.代码如下: &l ...
- asp.net动态生成按钮Button控件
1.动态生成button控件及响应服务端和客户端事件 void BindButtons(){ foreach (var item in items) { Button Btn = new Button ...
- WPF--Blend制作Button控件模板--问题补充
补充记录Button控件模板 控件模板制作过程中出现下图问题:动画对象不能用于动画属性"Fill” 并且这类问题Blend4中包括VS2010中仍然可以运行,但是只有VS2010中会报错:如 ...
- WPF--Blend制作Button控件模板
博客园新人,WPF初学者.不涉及理论知识,直接进入操作. 记录一下使用Blend制作Button控件模板过程中,学到Blend几个知识点: 1.渐变画笔编辑器的Alpha选项可以调控件的透明度.即下图 ...
- C# Windows - Button 控件
.Net Framework提供了一个派生于Control的类System.Windows.Forms.ButtonBase,它实现了Button控件所需的基本功能. System.Windows.F ...
随机推荐
- vim 基础学习之插入模式
插入模式1.字符编码,插入特殊字符 <C-v>{3位} 如,你想输入A,你可以在输入模式下<C-v>065(必须是3位) <C-v>u{4位} 如,你想输入¿,你可 ...
- 45. Express 框架 静态文件处理
转自:http://www.runoob.com/nodejs/nodejs-express-framework.html Express 提供了内置的中间件 express.static 来设置静态 ...
- 调用C#版gdal库的一个注意事项
作者:朱金灿 来源:http://blog.csdn.net/clever101 在编译完C#版gdal库(x86平台)下,写了一个C#的控制台测试程序,出现下面的错误: 解决办法是将工程的目标平台设 ...
- 【基础篇】点击Button按钮更换图片
我们在开发的过程中,往往为了美化界面的需要,会修改按钮的默认外观,而因为Android中的按钮有三种状态—默认,被点击,被选中.所以,如果要改变按钮的外观,需要对这三种情况都做出修改,也许在以往,我们 ...
- VS Code 终端显示问题
一.打开编辑器的终端时候,然后弹出了系统自带的cmd窗口 解决办法: Win+R 输入cmd 打开windows cmd窗口,窗口顶部右键属性,然后取消勾选使用旧版控制台,然后重启编辑器就行了. 二. ...
- Linux 交换分区swap
Linux 交换分区swap 一.创建和启用swap交换区 如果你的服务器的总是报告内存不足,并且时常因为内存不足而引发服务被强制kill的话,在不增加物理内存的情况下,启用swap交换区作为虚拟内存 ...
- split---将文件分割成多个小文件
split命令可以将一个大文件分割成很多个小文件,有时需要将文件分割成更小的片段,比如为提高可读性,生成日志等. 选项 -b:值为每一输出档案的大小,单位为 byte. -C:每一输出档中,单行的最大 ...
- xml格式报文的拼装,和解析成实体类
我们的微信支付,使用的是第三方的支付,某银行的微信支持渠道.所有的接口请求.应答都是xml格式报文,这样就需要用到xml格式报文的拼装和解析,这儿简单讲一下. 拼接xml格式报文. 从页面表单提交和配 ...
- GPU-Z:显卡体质、显卡各传感器实时状态的查看
1. TechPowerUp GPU-Z:查看显卡体质 下载地址:Download TechPowerUp GPU-Z | techPowerUp 点击 bus interface 后的?进行显卡的体 ...
- 在Qt Creator的项目中添加头文件和库
在Qt Creator中的工程中,工程通过.pro文件管理. 额外需要连接的连接库unix:LIBS += -L your_lib_path -lyour_libwin32:LIBS += your_ ...