swift语言实现提醒、UItableview自动行高、切换视图等

直接上代码



import Foundation
import UIKit

class TableViewController: UIViewController,UITableViewDataSource,UITableViewDelegate{
var backButton : UIButton!
var noticeButton : UIButton!
var personTableView:UITableView!
var itemAry = ["a","b","c"]
var sexAry = ["1","2","3"]
var contentAry = ["桃花坞里桃花庵,桃花庵下桃花仙;桃花仙人种桃树,又摘桃花换酒钱。酒醒只在花前坐,酒醉还来花下眠;半醒半醉日复日,花落花开年复年。但愿老死花酒间,不愿鞠躬车马前;车尘马足富者趣,酒盏花枝贫者缘。别人笑我太疯癫,我笑他人看不穿;不见五陵豪杰墓,无花无酒锄作田。—明·唐伯虎《桃花庵歌》","由注释可以看出,文本框的设置需要获得文字需要占用的尺寸,并且计算文本框占用的大小","311"]
override func viewDidLoad() {
println("load TableViewController")
super.viewDidLoad()

backButton=UIButton() //实例化
backButton.frame=CGRectMake(20,240,50,30)//大小、位置
backButton.backgroundColor=UIColor.redColor()//背景色
backButton.setTitle("Back",forState:UIControlState.Normal)//文本
backButton.addTarget(self,action:"back2Main:",forControlEvents:UIControlEvents.TouchUpInside)//事件

noticeButton=UIButton() //实例化
noticeButton.frame=CGRectMake(100,240,50,30)//大小、位置
noticeButton.backgroundColor=UIColor.redColor()//背景色
noticeButton.setTitle("Notice",forState:UIControlState.Normal)//文本
noticeButton.addTarget(self,action:"noticeAction:",forControlEvents:UIControlEvents.TouchUpInside)//事件


personTableView=UITableView()
personTableView.frame=CGRectMake(10, 40, 400, 300)
personTableView.dataSource=self
personTableView.delegate=self
personTableView.registerClass(PersonTableViewCell.self, forCellReuseIdentifier: "cell")//定义新的处理者

NSNotificationCenter.defaultCenter().addObserver(self, selector: "gameOver:", name: "gameOverNotification", object: nil)//定义提醒接收者

self.view.addSubview(backButton);
self.view.addSubview(noticeButton);
self.view.addSubview(personTableView);

}
func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell! {

var cell = tableView.dequeueReusableCellWithIdentifier("cell") as PersonTableViewCell!
cell.accessoryType = UITableViewCellAccessoryType.DisclosureIndicator
cell.selectedBackgroundView = nil
var row=indexPath!.row

cell.reloadCell(self.itemAry[row],sex: self.sexAry[row],content: self.contentAry[row])//加载数据
return cell
}
func tableView(tableView: UITableView!, numberOfRowsInSection section: Int) -> Int
{

return 3
}

func tableView(tableView: UITableView!, heightForRowAtIndexPath indexPath:NSIndexPath) -> CGFloat
{
//计算行高,返回,textview根据数据计算高度
var fixedWidth:CGFloat = 260;
var contextLab : UITextView=UITextView()
contextLab.text=contentAry[indexPath.row]
var newSize:CGSize = contextLab.sizeThatFits(CGSizeMake(fixedWidth, 123));
var height=(newSize.height)
println("height---\(height)")
return height+70
}
func back2Main(button: UIView) {
self.view.window?.rootViewController=ViewController()//切换视图
}
func noticeAction(button: UIView) {
NSNotificationCenter.defaultCenter().postNotificationName("gameOverNotification", object: title)//发出提醒

}
func gameOver(title:NSNotification)
{
let alert = UIAlertView()
alert.title = "计时完成!"
// var str = title.object as String
alert.message = "aaa"
alert.addButtonWithTitle("OK")
alert.show()

}
}
class PersonTableViewCell : UITableViewCell{

var IconImage : UIImageView?
var nameLab : UILabel?
var sexLab : UILabel?
var contextLab : UITextView?

var bgImage:UIImage?
required init(coder aDecoder: NSCoder!) {
super.init(coder: aDecoder)
}
override init(style: UITableViewCellStyle, reuseIdentifier: String!){

super.init(style: style, reuseIdentifier: reuseIdentifier)

IconImage = UIImageView(frame:CGRectMake(10 , 1 , 60 , 60))
IconImage!.backgroundColor = UIColor.redColor()
self.addSubview(IconImage!)

nameLab = UILabel(frame:CGRectMake(70 , 1 , 100 , 20))
nameLab?.layer.borderWidth=2
self.addSubview(nameLab!)

sexLab = UILabel(frame:CGRectMake(70 , 21 , 30 , 20))
sexLab?.layer.borderWidth=1
self.addSubview(sexLab!)


contextLab = UITextView(frame:CGRectMake(10 , 65 , 260 , 50))
self.addSubview(contextLab!)

}


func reloadCell(name:String,sex:String,content:String){
nameLab!.text = name //NSString
sexLab!.text = sex //String
contextLab!.text = content //String
IconImage?.image=UIImage(named:"mainBack")
bgImage = UIImage(named:"BlueBubble2")

//计算行高,返回,textview根据数据计算高度变换高度
var fixedWidth:CGFloat = contextLab!.frame.size.width;

var newSize:CGSize = contextLab!.sizeThatFits(CGSizeMake(fixedWidth, 123));
println(newSize.height)
var newFrame:CGRect = contextLab!.frame;
newFrame.size = CGSizeMake(max(newSize.width, fixedWidth), newSize.height);
contextLab!.frame = newFrame;


}


}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值