您的位置:首页 > 移动开发 > Swift

(十二)swift UIButton 九宫格

2015-12-15 10:37 393 查看

1. 固定4个数目



代码如下:

import UIKit

import Cartography

class WorkViewController: UIViewController {

override func viewDidLoad() {

super.viewDidLoad()

createButton_Salary()

createButton_Notice();

createButton_Contants();

createButton_Calendar();

}

// 工资 (第一行 居中)
func createButton_Salary() {

let width = self.view.frame.width;
let button_width = width / 4 ;  // button 的宽度
let _top = (self.navigationController?.navigationBar.frame.height)! + 20 ; // (+20 statusBar)

// ------------- button 的横纵坐标
let x =  (width / 2) - button_width / 2; // 横坐标
let y:CGFloat = _top + (button_width / 4) ;

let button = UIButton(type: UIButtonType.System)
button.frame = CGRectMake(x, y, button_width, button_width)

button.backgroundColor = UIColor.blackColor();
button.setTitle("工资", forState: UIControlState.Normal)
//button.addTarget(self, action: "buttonPressed:", forControlEvents: UIControlEvents.TouchUpInside)
self.view.addSubview(button)
}

// 通知(第一行 居左)
func createButton_Notice() {

let width = self.view.frame.width;
let button_width = width / 4 ;  // button 的宽度
let _top = (self.navigationController?.navigationBar.frame.height)! + 20 ; // (+20 statusBar);

// ------------- button 的横纵坐标
let x =  (width / 4) - (button_width / 2) -  (button_width / 4) ; // 横坐标
let y:CGFloat = _top  + (button_width / 4) ;

let button = UIButton(type: UIButtonType.System)
button.frame = CGRectMake(x, y, button_width, button_width)

button.backgroundColor = UIColor.blackColor();
button.setTitle("通知", forState: UIControlState.Normal)
//button.addTarget(self, action: "buttonPressed:", forControlEvents: UIControlEvents.TouchUpInside)
self.view.addSubview(button)
}

// 通讯录(第一行 居右)
func createButton_Contants() {

let width = self.view.frame.width;
let button_width = width / 4 ;  // button 的宽度
let _top = (self.navigationController?.navigationBar.frame.height)! + 20 ; // (+20 statusBar);

// ------------- button 的横纵坐标
let x =  (width / 2) + (button_width / 2) + (button_width / 4) ;
let y:CGFloat = _top  + (button_width / 4) ;

let button = UIButton(type: UIButtonType.System)
button.frame = CGRectMake(x, y, button_width, button_width)

button.backgroundColor = UIColor.blackColor();
button.setTitle("通讯", forState: UIControlState.Normal)
//button.addTarget(self, action: "buttonPressed:", forControlEvents: UIControlEvents.TouchUpInside)
self.view.addSubview(button)
}

// 日程(第二行 居左)
func createButton_Calendar() {

let width = self.view.frame.width;
let button_width = width / 4 ;  // button 的宽度
let _top = (self.navigationController?.navigationBar.frame.height)! + 20 ; // (+20 statusBar);

// ------------- button 的横纵坐标
let x =  (width / 4) - (button_width / 2) -  (button_width / 4) ; // 横坐标
let y:CGFloat = _top  + button_width + (button_width / 2)  ;

let button = UIButton(type: UIButtonType.System)
button.frame = CGRectMake(x, y, button_width, button_width)

button.backgroundColor = UIColor.blackColor();
button.setTitle("日程", forState: UIControlState.Normal)
//button.addTarget(self, action: "buttonPressed:", forControlEvents: UIControlEvents.TouchUpInside)
self.view.addSubview(button)
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}


}

2. 数目自定



代码如下:

import UIKit

import Cartography

class WorkViewController: UIViewController {

override func viewDidLoad() {

super.viewDidLoad()

CreateSudoku();

}

func CreateSudoku()
{

let width = self.view.frame.width;  // 屏幕宽度
let button_width = width / 4 ;      // button 的宽度
let _top = (self.navigationController?.navigationBar.frame.height)! + 20 ; // (+20 statusBar)

var x:CGFloat = 0;   // 横坐标
var y:CGFloat = _top ;   // 纵坐标
var row_index:Int = 0;   // 行号

for var i = 1 ; i <= 24 ;i++
{
y = _top;

if i % 3 == 0
{
row_index = (i / 3) - 1;
}
else
{
row_index = (i / 3)
}

// ------------- button 的横坐标
// 居左
if i % 3 == 1
{
x =  (width / 4) - (button_width / 2) -  (button_width / 4) ; // 横坐标
}

// 居中
if i % 3 == 2
{
x =  (width / 2) - button_width / 2; // 横坐标
}

// 居右
if i % 3 == 0
{
x =  (width / 2) + (button_width / 2) + (button_width / 4) ;

}

// ------------- button 的纵坐标,使用循环,避免CGFLOAT * Init 的报错
if row_index > 0
{
for var j = 0 ; j < row_index ; j++
{
y += button_width ;
}
}

// ---- 纵坐标 间距
for var m = 0 ; m <= row_index ; m++
{
y += button_width / 4 ;
}

let button = UIButton(type: UIButtonType.System)
button.frame = CGRectMake(x, y, button_width, button_width)

button.backgroundColor = UIColor.blueColor();
button.setTitle( String(i) , forState: UIControlState.Normal)
self.view.addSubview(button)

}

}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}


}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: