swift 代码笔记
来源:互联网 发布:淘宝店铺宝贝编辑记录 编辑:程序博客网 时间:2024/06/14 15:24
1/
// 让导航栏支持右滑返回功能
self.navigationController?.navigationBar.translucent = false
self.navigationController?.interactivePopGestureRecognizer.enabled = true
self.navigationController?.interactivePopGestureRecognizer.delegate = self
2/ 导航栏顶部 左右按钮
let leftButton:UIButton =UIButton(frame: CGRectMake(0,0, 50, 40))
leftButton.setImage(UIImage(named:"home_zuohua"), forState: UIControlState.Normal)
leftButton.addTarget(self, action:"leftButtonAction", forControlEvents: UIControlEvents.TouchUpInside)
var leftFixedSpace = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FixedSpace, target:nil ,action:nil)
leftFixedSpace.width = -15;
self.navigationItem.leftBarButtonItems = [leftFixedSpace,UIBarButtonItem(customView: leftButton)]
let rightButton:UIButton =UIButton(frame: CGRectMake(0,0, 50, 40))
rightButton.setImage(UIImage(named:"home_tianjia"), forState: UIControlState.Normal)
rightButton.addTarget(self, action:"rightButtonAction", forControlEvents: UIControlEvents.TouchUpInside)
var rightFixedSpace = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FixedSpace, target:nil ,action:nil)
rightFixedSpace.width = -15;
self.navigationItem.rightBarButtonItems = [rightFixedSpace,UIBarButtonItem(customView: rightButton)]
3/ 按钮旋转功能
// 旋转功能 self.connectButton.addRotateAnimationWithTime()
/**
*
* 做一个有View的旋转动画扩展,默认旋转一周时间0.6s
*/
extension UIView {
func addRotateAnimationWithTime(_ time:NSTimeInterval? =0.6){
let rotationAnimation = CABasicAnimation(keyPath: "transform.rotation.z")
rotationAnimation.toValue =NSNumber(double: M_PI *2.0)
rotationAnimation.duration = time!
rotationAnimation.removedOnCompletion =false
rotationAnimation.repeatCount =HUGE
self.layer.addAnimation(rotationAnimation, forKey:"rotationAnimation")
}
}
4/ 点击cell 短时间内选中的效果
func tableView(tableView:UITableView, didSelectRowAtIndexPath indexPath:NSIndexPath) {
tableView.deselectRowAtIndexPath(indexPath, animated:true)
//。。。。。。
}
func tableView(tableView:UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cellId = "TableViewCell"
var cell = tableView.dequeueReusableCellWithIdentifier(cellId)as! SWTableViewCell!
if cell == nil {
var rightButtonArray = NSMutableArray()
rightButtonArray.addUtilityButtonWithColor(grayColor, icon:UIImage(named: "home_editblue"))
rightButtonArray.addUtilityButtonWithColor(appThemeColor, icon:UIImage(named: "home_onwhite"))
cell =SWTableViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: cellId, containingTableView:self.myTableView, leftUtilityButtons:nil, rightUtilityButtons: rightButtonArray as [AnyObject])
cell.delegate =self
}
cell.textLabel!.text ="0822655"
cell.detailTextLabel!.text ="Some detail text"
cell.imageView!.image =UIImage(named: "icon_wukong--")
return cell
}
func rightButtonAction(){
let actionSheet = UIActionSheet(title:nil, delegate: self, cancelButtonTitle: "Cancel", destructiveButtonTitle:nil, otherButtonTitles: "New Device","Device Configured")
actionSheet.showInView(self.view)
}
//MARK: - ActionSheetDelegate
func actionSheet(actionSheet: UIActionSheet, clickedButtonAtIndex buttonIndex: Int) {
if buttonIndex==1 {
}elseif buttonIndex==2{
}else{
return
}
}
privatefunc buildSubUI(){
//初始化Tableview
self.myTableView ={
let tableView = UITableView(frame:self.view.bounds, style:UITableViewStyle.Plain)
tableView.autoresizingMask = .FlexibleHeight | .FlexibleWidth;
tableView.rowHeight =64.0
// tableView.separatorStyle = UITableViewCellSeparatorStyle.None
tableView.allowsSelection =false
tableView.delegate =self
tableView.dataSource =self
return tableView
}()
self.myTableView.tableFooterView = UIView() //这样可以让多余的cell下划线去掉
self.view.addSubview(self.myTableView)
//初始化headerView COEFFICIENT_OF_HEIGHT_ZOOM 适配的缩放比例系数
let headerView = TTAdvertisementView(frame:CGRectMake(0,0, ScreenWidth,180*COEFFICIENT_OF_HEIGHT_ZOOM), pictureArray: ["1","2","3"])
self.myTableView.tableHeaderView = headerView
}
class LeftItem {
var icon : String =""
var title : String =""
}
private(set)var cellTitleArray : NSMutableArray = {
var arr :NSMutableArray = NSMutableArray()
var item : LeftItem =LeftItem()
item.icon ="leftmenu_password"
item.title ="Account Password"
arr.addObject(item)
var item2 : LeftItem =LeftItem()
item2.icon ="leftmenu_faq"
item2.title ="FAQ"
arr.addObject(item2)
return arr
}()
let headerView = TTAdvertisementView(frame: CGRectMake(0,0, ScreenWidth,180*COEFFICIENT_OF_HEIGHT_ZOOM), pictureArray: ["1","2","3"])
self.myTableView.tableHeaderView = headerView
import UIKit
class TTAdvertisementView:UIView, UIScrollViewDelegate{
private(set) var pictureScrollView:UIScrollView?
private(set) var pageContrlolerView:UIPageControl?
private(set) var advertisementTime:NSTimer?
private(set) var advertisementCurrent:NSInteger =1
private(set) var pictureArray:NSArray!
weak var viewController:UIViewController? // 用于做页面跳转
init(frame: CGRect, pictureArray:NSArray) {
super.init(frame: frame)
self.buildDataAndUI(pictureArray)
}
override func awakeFromNib(){
super.awakeFromNib()
}
required init(coder aDecoder:NSCoder) {
// fatalError("init(coder:) has not been implemented")
super.init(coder: aDecoder)
}
//MARK:- Delegate or DataSource
//MARK:- UIScrollViewDelegate
func scrollViewDidEndDecelerating(scrollView: UIScrollView) {
self.advertisementCurrent =NSInteger(scrollView.contentOffset.x /ScreenWidth)
ifself.advertisementCurrent ==self.pictureArray.count +1{
self.pictureScrollView?.contentOffset =CGPointMake(0,0)
self.advertisementCurrent =1
self.pageContrlolerView?.currentPage =0
return
}
self.pageContrlolerView?.currentPage =self.advertisementCurrent
}
//MARK:- NSNotification Method
//MARK:- Action Method
//MARK:- Private Method
/**
* 定时器重复方法
*/
func advertisementTimer() {
UIView.animateWithDuration(1, animations: { () ->Void in
self.pictureScrollView?.contentOffset =CGPointMake(ScreenWidth * (CGFloat(self.advertisementCurrent)),0)
self.pageContrlolerView?.currentPage =self.advertisementCurrent
self.advertisementCurrent++
}) { (finish) ->Void in
ifself.advertisementCurrent ==self.pictureArray.count +1{
self.pictureScrollView?.contentOffset =CGPointMake(0,0)
self.advertisementCurrent =1
self.pageContrlolerView?.currentPage =0
}
}
}
/**
//初始化相关子View
*/
func buildDataAndUI(urlArray:NSArray) {
//数据
self.pictureArray =NSArray(array: urlArray)
//UIScrollView
self.pictureScrollView =UIScrollView(frame: CGRectMake(0, 0, ScreenWidth, self.bounds.size.height))
self.pictureScrollView!.pagingEnabled =true
self.pictureScrollView!.delegate =self
self.pictureScrollView!.showsVerticalScrollIndicator = false
self.pictureScrollView!.showsHorizontalScrollIndicator = false
self.pictureScrollView!.userInteractionEnabled = true
self.addSubview(self.pictureScrollView!)
self.pictureScrollView?.contentSize =CGSizeMake(ScreenWidth *CGFloat(self.pictureArray.count + 1), 0)
for (i, urlString) in enumerate(self.pictureArray) {
let pictureImageView = UIImageView(frame: CGRectMake(ScreenWidth*CGFloat(i),0, ScreenWidth,self.bounds.size.height))
if i == 0{
pictureImageView.image =UIImage(named: "ad_tupian2")
}
if i == 1{
pictureImageView.image =UIImage(named: "ad_tupian")
}
if i == 2{
pictureImageView.image =UIImage(named: "ad_tupian2")
}
// pictureImageView.sd_setImageWithURL(NSURL(string: model.pic!), placeholderImage: UIImage(named: "DefaultBgImage"))
// pictureImageView.contentMode = UIViewContentMode.ScaleAspectFill
// pictureImageView.userInteractionEnabled = true
self.pictureScrollView?.addSubview(pictureImageView)
}
//为了循环多添加一张
let pictureImageView = UIImageView(frame: CGRectMake(CGFloat((self.pictureArray.count)) *ScreenWidth, 0,ScreenWidth, self.bounds.size.height))
pictureImageView.image =UIImage(named: "ad_tupian2")
// pictureImageView.sd_setImageWithURL(NSURL(string: model.pic!), placeholderImage: UIImage(named: "DefaultBgImage"))
// pictureImageView.contentMode = UIViewContentMode.ScaleAspectFill
// pictureImageView.userInteractionEnabled = true
self.pictureScrollView?.addSubview(pictureImageView)
//UIPageControl
self.pageContrlolerView =UIPageControl(frame: CGRectMake(0,self.bounds.size.height -40, self.bounds.size.width,40))
self.pageContrlolerView!.numberOfPages =self.pictureArray.count
self.pageContrlolerView!.currentPageIndicatorTintColor = appThemeColor
self.pageContrlolerView!.currentPage =0
self.addSubview(self.pageContrlolerView!)
//定时器
self.advertisementTime =NSTimer.scheduledTimerWithTimeInterval(3.0, target:self, selector: "advertisementTimer", userInfo:nil, repeats: true)
}
}
- swift 代码笔记
- swift 代码笔记2
- swift 代码笔记3
- swift学习代码笔记
- iOS: 学习笔记, 用代码驱动自动布局实例(swift)
- swift学习笔记一: 调用Objective-C代码
- iOS开发笔记--OC工程中调用不了Swift代码
- swift笔记
- swift笔记
- swift 笔记
- swift 笔记
- Swift笔记
- Swift笔记
- Swift笔记
- Swift笔记
- Swift 笔记
- Swift笔记
- Swift 笔记
- I/O Stream<找出文件中最大与最小的整数>
- 【HDU3488】【匹配】【KM最小费用圈】
- 临界区问题的产生
- 过滤器模板
- hdu4414 Finding crosses
- swift 代码笔记
- 路径中 斜杠/和反斜杠\ 的区别
- A a1 = new A(); A a2 = new B(); B b = new B(); C c = new C();
- 最小生成树 prim()
- QT for mac 安装注意事项
- linux下修改mysql密码
- 绕轴旋转矩阵
- 抽象类和接口的区别
- java 自写的计算器