• swift 编写欢迎界面-- ios开发


    转载自:http://blog.csdn.net/u014455765/article/details/49622947

    现在很多iOS开发人员都从oc转向Swift, swift 也必将成为ios开发的潮流和趋势。
    在此和大家一起分享程序进入的欢迎界面,让app在用户第一次打开或者是更新之后进入时有欢迎界面了解app的内容和活动。
    1、准备4张引导页的图片拖动到Images.xcassets文件中。这里写图片描述
    这里写图片描述
    2、创建一个ViewController.swift文件。//

    //  ViewController.swift
    //  欢迎界面
    //
    //  Created by Mac Tylar on 15-11-2.
    //  Copyright (c) 2015年 Mac Tylar. All rights reserved.
    //
    
    import UIKit
    
    class ViewController: UIViewController, UIScrollViewDelegate {
        // 闭包属性    用于跳转页面
        var startClosure: (()-> Void)?
        // 创建scrollView
        let scrollView = UIScrollView()
        // 创建pageController
        let pageControl = UIPageControl()
        override func viewDidLoad() {
            super.viewDidLoad()
            self.view.backgroundColor = UIColor.whiteColor()
            // 设置scrollView的大小
            scrollView.frame = self.view.bounds
            // 设置scrollView的内容大小,横向宽度等于图片数目乘以宽度,高度为0 不滚动
            scrollView.contentSize = CGSize( self.view.frame.width*4, height: 0)
            // 设置分页
            scrollView.pagingEnabled = true
            // 去除弹簧效果
            scrollView.bounces = false
            // 去除横向的滚动条
            scrollView.showsHorizontalScrollIndicator = false
            // 设置代理
            scrollView.delegate = self
            // 设置居中和坐标
            pageControl.center = CGPoint(x: self.view.frame.width/2, y: self.view.frame.height-50)
            // 设置当前页面指示颜色
            pageControl.currentPageIndicatorTintColor = UIColor.whiteColor()
            // 设置指示颜色
            pageControl.pageIndicatorTintColor = UIColor.redColor()
            // 设置页数
            pageControl.numberOfPages = 4
            // pageControl的值变动时调用方法
            pageControl.addTarget(self, action: "scrollViewDidEndDecelerating", forControlEvents: UIControlEvents.ValueChanged)
            // 添加背景图片
            for var i = 0 ; i < 4 ; i++ {
                let image = UIImage(named: "(i+1)")
                let imageView = UIImageView(frame: self.view.frame)
                imageView.image = image
                var frame = imageView.frame
                // x轴等于当前的i乘以宽度  等于偏移宽度
                frame.origin.x = CGFloat(i) * frame.size.width
                // 设置imageView的frame
                imageView.frame = frame
                // 给最后一个导航页上添加一个进入按钮  进入主页
                if i == 3 {
                    let btn = UIButton(frame: CGRect(x: self.view.frame.width/2-60, y: self.view.frame.height/2+100,  120, height: 40))
                    btn.layer.cornerRadius = 10
                    btn.backgroundColor = UIColor.redColor()
                    btn.setTitle("进入", forState: UIControlState.Normal)
                    btn.setTitleColor(UIColor.whiteColor(), forState: UIControlState.Normal)
                    btn.setTitleColor(UIColor.grayColor(), forState: UIControlState.Highlighted)
                    btn.addTarget(self, action: "startAction:", forControlEvents: UIControlEvents.TouchUpInside)
                    imageView.addSubview(btn)
                    imageView.userInteractionEnabled = true
                }
                 // 添加子视图
                scrollView.addSubview(imageView)
            }
    
            // 添加子视图
            self.view.addSubview(scrollView)
            self.view.addSubview(pageControl)
            // Do any additional setup after loading the view, typically from a nib.
        }
    
        func startAction(sender: UIButton) {
            startClosure!()
        }
    
        // pageControl的值变动时调用的方法
        func scrollViewDidEndDecelerating(scroll: UIScrollView) {
            // 获取index
            let index = scrollView.contentOffset.x/self.view.frame.width
            // 设置当前页面
            pageControl.currentPage = Int(index)
            // 添加子视图
            self.view.addSubview(pageControl)
        }
    
        override func didReceiveMemoryWarning() {
            super.didReceiveMemoryWarning()
            // Dispose of any resources that can be recreated.
        }
    }

    3、在AppDelegate类中添加application方法的代码块。

    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    
    // NSUserDefaults.standardUserDefaults().removeObjectForKey(“started”)
    // 判断是否时第一次打开app
    var started = NSUserDefaults.standardUserDefaults().valueForKey(“started”) as? String
    if started == nil {
    let vc = ViewController()
    self.window?.rootViewController = vc
    vc.startClosure = { ()-> Void in
    self.startApp()
    NSUserDefaults.standardUserDefaults().setValue(“start”, forKey: “started”)
    NSUserDefaults.standardUserDefaults().synchronize()
    }
    } else {
    self.startApp()
    }
    return true
    }
    
    // 启动程序
    func startApp() {
        let rootVc = centerViewViewController()
        // 给viewController配置导航控制器
        let navi = UINavigationController(rootViewController: rootVc)
        self.window?.rootViewController = navi
    }

    注意:centerViewViewController()是一个viewControler的类。

  • 相关阅读:
    数据结构与算法之二叉查找树精简要点总结
    数据结构与算法之并查集的精简要点总结
    数组嵌套实现哈希函数的数据分片应用
    InfluxDB 写入&查询 Qt工程(C++ 客户端 API)
    关于Maven中<packaging>产生的一些问题
    Spring Boot:The field file exceeds its maximum permitted size of 1048576 bytes
    Npm管理命令
    ES6转ES5(Babel转码器)
    IOC容器中的依赖注入(一)
    Nginx常用部分命令
  • 原文地址:https://www.cnblogs.com/melons/p/5791903.html
Copyright © 2020-2023  润新知