码迷,mamicode.com
首页 > 编程语言 > 详细

swift常用UI控件的使用方法

时间:2016-01-06 00:13:08      阅读:658      评论:0      收藏:0      [点我收藏+]

标签:

对于习惯了OC代码的程序员来说,swift的语法简直让人不能忍受,今天将一些常用的UI控件简单做了一下整理。

 

import UIKit

class ViewController : UIViewController, UIPickerViewDataSource, UIPickerViewDelegate {


    override func viewDidLoad() {
        super.viewDidLoad()

        self.view.backgroundColor = UIColor.whiteColor()
        
        if self.title == "UILabel"
        {
            // Label
            let label = UILabel(frame: self.view.bounds)
            label.backgroundColor = UIColor.clearColor()
            label.textAlignment = NSTextAlignment.Center
            label.font = UIFont.systemFontOfSize(36)
            label.text = "Hello, Swift"
            self.view.addSubview(label)
        }
        else if self.title == "UIButton"
        {
            // Button
            let button = UIButton(type: UIButtonType.System)
            button.frame = CGRectMake(110, 120, 100, 50)
            button.backgroundColor = UIColor.grayColor()
            button.setTitleColor(UIColor.redColor(), forState: UIControlState.Normal)
            button.setTitleColor(UIColor.whiteColor(), forState: UIControlState.Highlighted)
            button.setTitle("普通", forState: UIControlState.Normal)
            button.setTitle("高亮", forState: UIControlState.Highlighted)
            button.addTarget(self, action: "buttonAction:", forControlEvents: UIControlEvents.TouchUpInside)
            button.tag = 100
            self.view.addSubview(button)
        }
        else if self.title == "UIImageView"
        {
            let image     = UIImage(named: "swift-hero.png")
            let imageView = UIImageView(frame: CGRectMake((CGRectGetWidth(self.view.bounds) - image!.size.width) / 2.0, 120.0, image!.size.width, image!.size.height))
            imageView.image = image
            self.view.addSubview(imageView)
        }
        else if self.title == "UISlider"
        {
            let slider = UISlider(frame:CGRectMake(60, 120, 200, 30))
            self.view.addSubview(slider)
        }
        else if self.title == "UIWebView"
        {
            let webView = UIWebView(frame:self.view.bounds)
            let url = NSURL(string: "http://caipiao.m.taobao.com")
            let request = NSURLRequest(URL: url!)
            webView.loadRequest(request)
            self.view.addSubview(webView)
        }
        else if self.title == "UISegmentedControl"
        {
            let segmentControl = UISegmentedControl(items:["A", "B", "C", "D"])
            segmentControl.frame = CGRectMake(110, 120, 100, 30)
            self.view.addSubview(segmentControl)
        }
        else if self.title == "UISwitch"
        {
            let switchControl = UISwitch(frame:CGRectMake(130, 120, 100, 30))
            switchControl.on = true
            self.view.addSubview(switchControl)
        }
        else if self.title == "UITextField"
        {
            let textField = UITextField(frame:CGRectMake(60, 120, 200, 30))
            textField.backgroundColor = UIColor.lightGrayColor()
            textField.placeholder = "请输入"
            self.view.addSubview(textField)
        }
        else if self.title == "UIScrollView"
        {
            let scrollView = UIScrollView(frame:CGRectMake(60, 120, 200, 200))
            scrollView.pagingEnabled = true
            scrollView.showsVerticalScrollIndicator = false
            self.view.addSubview(scrollView)
            
            var fX: CGFloat = 0.0
            for(var i = 0; i < 3; ++i)
            {
                let view = UIView(frame:CGRectMake(fX, 0, 200, 200))
                fX += 200
                view.backgroundColor = UIColor(red: CGFloat(100 * i) / 256, green: CGFloat(100 * i) / 256, blue: CGFloat(100 * i) / 256, alpha: 1)
                // 这个地方因为swift对于类型的控制十分严格,颜色值采用的是CGFloat类型,但是i是int类型,所以需要强转
                scrollView.addSubview(view)
            }
            scrollView.contentSize = CGSizeMake(3 * 200, 0)
            self.view.addSubview(scrollView)
        }
        else if self.title == "UISearchBar"
        {
            let searchBar = UISearchBar(frame:CGRectMake(10.0, 120.0, 300.0, 30.0))
            searchBar.showsCancelButton = true
            searchBar.searchBarStyle = UISearchBarStyle.Minimal // Default, Prominent, Minimal
            
            self.view.addSubview(searchBar)
        }
        else if self.title == "UIPageControl"
        {
            // PageControl
            let pageControl = UIPageControl(frame:CGRectMake(60.0, 120.0, 200.0, 200.0))
            pageControl.numberOfPages = 5
            pageControl.currentPageIndicatorTintColor = UIColor.blackColor()
            pageControl.pageIndicatorTintColor = UIColor.redColor()
            self.view.addSubview(pageControl)
        }
        else if self.title == "UIDatePicker"
        {
            let datePicker = UIDatePicker(frame:CGRectMake(0.0, 120.0, 200.0, 200.0))
            self.view.addSubview(datePicker)
        }
        else if self.title == "UIPickerView"
        {
            let pickerView = UIPickerView(frame:CGRectMake(10.0, 120.0, 300.0, 200.0))
            pickerView.delegate = self
            pickerView.dataSource = self
            self.view.addSubview(pickerView)
        }
        else if self.title == "UIProgressView"
        {
            let progressView = UIProgressView(progressViewStyle:UIProgressViewStyle.Default)
            progressView.frame = CGRectMake(10.0, 120.0, 300.0, 30.0)
            progressView.setProgress(0.8, animated: true)
            self.view.addSubview(progressView)
        }
        else if self.title == "UITextView"
        {
            let textView = UITextView(frame:CGRectMake(10.0, 120.0, 300.0, 200.0))
            textView.backgroundColor = UIColor.lightGrayColor()
            textView.editable = false
            textView.font = UIFont.systemFontOfSize(20)
            textView.text = "Swift is an innovative new programming language for Cocoa and Cocoa Touch. Writing code is interactive and fun, the syntax is concise yet expressive, and apps run lightning-fast. Swift is ready for your next iOS and OS X project — or for addition into your current app — because Swift code works side-by-side with Objective-C."
            self.view.addSubview(textView)
        }
        else if self.title == "UIToolbar"
        {
            let toolBar = UIToolbar(frame:CGRectMake(60.0, 120.0, 200.0, 30.0))
            
            let flexibleSpace = UIBarButtonItem(barButtonSystemItem:UIBarButtonSystemItem.FlexibleSpace, target:nil, action:nil)
            let barBtnItemA = UIBarButtonItem(title: "A", style:UIBarButtonItemStyle.Plain, target:nil, action:nil)
            let barBtnItemB = UIBarButtonItem(title: "B", style:UIBarButtonItemStyle.Plain, target:nil, action:nil)
            let barBtnItemC = UIBarButtonItem(title: "C", style:UIBarButtonItemStyle.Plain, target:nil, action:nil)
            let barBtnItemD = UIBarButtonItem(title: "D", style:UIBarButtonItemStyle.Plain, target:nil, action:nil)
            
            toolBar.items = [flexibleSpace, barBtnItemA, flexibleSpace, barBtnItemB, flexibleSpace, barBtnItemC, flexibleSpace, barBtnItemD, flexibleSpace]
            self.view.addSubview(toolBar)
        }
        else if self.title == "UIActionSheet"
        {
            // Button
            let button = UIButton(type: UIButtonType.System)
            button.frame = CGRectMake(60.0, 120.0, 200.0, 50.0)
            button.backgroundColor = UIColor.grayColor()
            button.setTitleColor(UIColor.redColor(), forState: UIControlState.Normal)
            button.setTitleColor(UIColor.whiteColor(), forState: UIControlState.Highlighted)
            button.setTitle("ActionSheet", forState: UIControlState.Normal)
            button.setTitle("ActionSheet", forState: UIControlState.Highlighted)
            button.addTarget(self, action: "showActionSheet", forControlEvents: UIControlEvents.TouchUpInside)
            button.tag = 101
            self.view.addSubview(button)
        }
        else if self.title == "UIActivityIndicatorView"
        {
            let activityIndicatorView = UIActivityIndicatorView(activityIndicatorStyle:UIActivityIndicatorViewStyle.Gray)
            activityIndicatorView.frame = CGRectMake(140.0, 120.0, 40.0, 40.0)
            activityIndicatorView.startAnimating()
            self.view.addSubview(activityIndicatorView)
        }
    }
    func buttonAction(sender: UIButton) {
        
        let alertController = UIAlertController(title: "通知", message: "确定还是取消", preferredStyle: UIAlertControllerStyle.Alert)

        let alertView1 = UIAlertAction(title: "确定", style: UIAlertActionStyle.Default) { (UIAlertAction) -> Void in
            print("确定按钮点击事件")
        }
        let alertView2 = UIAlertAction(title: "取消", style: UIAlertActionStyle.Default) { (UIAlertAction) -> Void in
            print("取消按钮点击事件")
        }
        let alertView3 = UIAlertAction(title: "下次吧", style: UIAlertActionStyle.Default) { (UIAlertAction) -> Void in
            print("下次吧按钮点击事件")
        }
        alertController.addAction(alertView1)
        alertController.addAction(alertView2)
        alertController.addAction(alertView3)
        self.presentViewController(alertController, animated: true, completion: nil)
    }
    
    func showActionSheet()
    {
        let alertController = UIAlertController(title: "通知", message: "确定还是取消", preferredStyle: UIAlertControllerStyle.ActionSheet)
        
        let alertView1 = UIAlertAction(title: "确定", style: UIAlertActionStyle.Default) { (UIAlertAction) -> Void in
            print("确定按钮点击事件")
        }
        let alertView2 = UIAlertAction(title: "取消", style: UIAlertActionStyle.Default) { (UIAlertAction) -> Void in
            print("取消按钮点击事件")
        }
        let alertView3 = UIAlertAction(title: "下次吧", style: UIAlertActionStyle.Default) { (UIAlertAction) -> Void in
            print("下次吧按钮点击事件")
        }
        alertController.addAction(alertView1)
        alertController.addAction(alertView2)
        alertController.addAction(alertView3)
        self.presentViewController(alertController, animated: true, completion: nil)

    }
    
    // UIPickerViewDataSource Methods
    // returns the number of ‘columns‘ to display.
    func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int
    {
        return 3
    }
    
    // returns the # of rows in each component..
    func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int
    {
        return 10
    }
    
    func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String?
    {
        return String(format:"%i", row)
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
}

 

swift常用UI控件的使用方法

标签:

原文地址:http://www.cnblogs.com/wangxianggudu/p/5104049.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!