界面切换
在项目中可以把耦合度比较高的界面放在通过一个StoryBoard中,可以按照功能使用多个StoryBoard搭建界面,这样便于项目维护以及多人开发,对于多个StoryBoard间切换,可以使用以下代码:
@IBAction func ChangeOne(sender: UIButton) {
var oneStoryBoard:UIStoryboard = UIStoryboard(name: "One", bundle: NSBundle.mainBundle())
let oneController:UIViewController = oneStoryBoard.instantiateViewControllerWithIdentifier("oneId") as UIViewController
self.navigationController?.pushViewController(oneController, animated: true)
}
需要说明的是上面的"One"是One.storyboard,"oneId"是下图中的Storyboard ID
还有一个需要注意的就是切换界面的主界面必须是Navigation Contoller
UIScrollView实现图片轮播
//
// Two.swift
// MultStoryBoardChanged
//
// Created by System Administrator on 15/2/6.
// Copyright (c) 2015年 jwzhangjie. All rights reserved.
//
import UIKit
class Two: UIViewController, UIScrollViewDelegate{
@IBOutlet weak var scrollview: UIScrollView!
@IBOutlet weak var pageControl: UIPageControl!
var timer:NSTimer!
override func viewDidLoad() {
super.viewDidLoad();
//image width
let imageW:CGFloat = self.scrollview.frame.size.width;
let imageH:CGFloat = self.scrollview.frame.size.height;
var imageY:CGFloat = 0;
var totalCount:NSInteger = 5;
for index in 0..<totalCount{
var imageView:UIImageView = UIImageView();
let imageX:CGFloat = CGFloat(index) * imageW;
imageView.frame = CGRectMake(imageX, imageY, imageW, imageH);
let name:NSString = NSString(format: "image_0%d", index+1);
imageView.image = UIImage(named: name);
self.scrollview.showsHorizontalScrollIndicator = false;
self.scrollview.addSubview(imageView);
}
let contentW:CGFloat = imageW * CGFloat(totalCount);
self.scrollview.contentSize = CGSizeMake(contentW, 0);
self.scrollview.pagingEnabled = true;
self.scrollview.delegate = self;
self.pageControl.numberOfPages = totalCount;
self.addTimer()
}
func nextImage(sender:AnyObject!){
var page:Int = self.pageControl.currentPage;
if(page == 4){
page = 0;
}else{
++page;
}
let x:CGFloat = CGFloat(page) * self.scrollview.frame.size.width;
self.scrollview.contentOffset = CGPointMake(x, 0);
}
func scrollViewDidScroll(scrollView: UIScrollView) {
let scrollviewW:CGFloat = scrollview.frame.size.width;
let x:CGFloat = scrollview.contentOffset.x;
let page:Int = (Int)((x + scrollviewW / 2) / scrollviewW);
self.pageControl.currentPage = page;
}
func scrollViewWillBeginDragging(scrollView: UIScrollView) {
self.removeTimer();
}
func scrollViewDidEndDragging(scrollView: UIScrollView, willDecelerate decelerate: Bool) {
self.addTimer();
}
func addTimer(){
self.timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: "nextImage:", userInfo: nil, repeats: true);
NSRunLoop.currentRunLoop().addTimer(self.timer, forMode: NSRunLoopCommonModes);
}
func removeTimer(){
self.timer.invalidate();
}
}
需要注意的是XCode6.1里面
for index in 0..<totalCount{
0..<是半区间,包头不包尾 ...全区间