class CounterViewController:UIViewController{
override func viewDidLoad()
{
// 显示的调用父类函数 super 表示父类
super.viewDidLoad()
// -----------------简单的UI控件 UILabel-----------------------
// (1)创建一个rect 对象
let rect=CGRect(x:20 ,y:100,width:280, height:40)
// (2)创建一个UILabel 参数是一个rect对象
//var label=UILabel(frame:rect)
// 也可以将(1)(2) 合成 一下
var label=UILabel(frame:CGRect(x:20, y:100,width:280, height:40))
//设置label内容
label.text="理 想"
//设置label字体颜色
label.textColor=UIColor.blue
//将label 添加到当前视图上
self.view.addSubview(label)
//---------------------简单的UI控件 UIButton--------------------
// 创建一个UIButton 并且设计frame
var but=UIButton(frame:CGRect(x:20 ,y:150 ,width:200,height:40))
//设置UIButton 的标题
/*func setTitle(title: String!, forState state: UIControlState)
函数:设置but的名字
参数说明:
(1)提一个参数是but 的名字
(2)第二个参数是这个表示在按钮那种状态下是这个名字
说明 .Normal 等价于 UIControlState.Normal
*/
// 给按钮起一个名字 ,这个按钮在Normal在这个状态下是这个名字
but.setTitle("按钮",for:.normal)
//but 添加事件
/*func addTarget(target: AnyObject!, action: Selector, forControlEvents controlEvents: UIControlEvents)
函数:
给but 添加事件
(1)第一个参数是target值, 告诉事件响应的方法在那个对象中
(2)第二个参数是 action 是SEL 写方法名即可
(3)第三个参数 事件类型 ,响应那种事件
*/
// 给but 添加一个TouchUpInside 类型的事件 ,时间显示的方法为butClick: 这个方法是在self 的对象中
but.addTarget(self,action:#selector(butClick),for:.touchUpInside)
//将but添加到视图上
but.backgroundColor=UIColor.red
//将but加入视图
self.view.addSubview(but)
}
// 按钮的事件
/*
func butClick(sender:UIButton)
func 声明函数关键字 butClick函数名 sender 可以理解为调用者but :UIButton 为调用者类型
*/
func butClick()
{
//设定路径,tmp目录路径
let tmpDir = NSTemporaryDirectory()
var url: NSURL = NSURL(fileURLWithPath: tmpDir+"data.txt")
//定义可变数据变量
var data = NSMutableData()
//向数据对象中添加文本,并制定文字code
data.append("Hello Swift".data(using: String.Encoding.utf8, allowLossyConversion: true)!)
let string = "添加一些文字到文件末尾"
let appendedData = string.data(using: String.Encoding.utf8, allowLossyConversion: true)
let writeHandler = try? FileHandle(forWritingTo:url as URL)
writeHandler!.seekToEndOfFile()
writeHandler!.write(appendedData!)
//用data写文件
//if data.write(toFile: url.path!, atomically: true){
//从url里面读取数据,读取成功则赋予readData对象,读取失败则走else逻辑
if let readData = NSData(contentsOfFile: url.path!) {
//如果内容存在 则用readData创建文字列
NSLog(NSString(data: readData as Data, encoding: String.Encoding.utf8.rawValue) as! String)
} else {
//nil的话,输出空
NSLog("Null")
}
//}else{
// NSLog("Failed to Write!")
//}
}