`
towaywu
  • 浏览: 15722 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

The Swift Code之设置UIButton的不同方式创建,以及不同的状态和外观

阅读更多

在设置rootViewController之后,在这个control里的viewDidLoad方法里,添加相应的代码.设置了9个不同类型的UIButton

  1. 创建了有状态的button,以及添加button事件

  2. 创建没有状态的button

  3. 创建一个图片加文字的按钮,只要图片就不需要设置title

  4. 从系统定义的button类型创建button

  5. 创建禁止button

  6. 创建一个圆角button

  7. 部分圆角button,主要是利用layer的mask属性,在通过CAShaperLayer和UIBezierPath来画

  8. 创建折角button

  9. 创建border的button

import UIKit

class ViewController: UIViewController {
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        //创建有状态的按钮
        var btn:UIButton = UIButton(frame: CGRect(x: 50, y: 50, width: 100, height: 25))
        
        btn.setTitle("点击按钮", forState: UIControlState.Highlighted)
        btn.setTitle("未点击", forState: UIControlState.Normal)
        btn.backgroundColor = UIColor.blackColor()
        self.view.addSubview(btn)
        //给按钮添加点击事件
        btn.addTarget(self, action: "clickEvent:", forControlEvents: UIControlEvents.TouchUpInside)
        
        //创建没有状态的按钮
        var btn2:UIButton = UIButton(frame: CGRect(x: 50, y: 85, width: 100, height: 35))
        btn2.setTitle("Normal", forState: UIControlState.Normal)
        btn2.backgroundColor = UIColor.blueColor()
        self.view.addSubview(btn2)
        
        //创建一个图片加文字的按钮
        var btn3:UIButton = UIButton(frame: CGRect(x: 50, y: 130, width: 180, height: 35))
        btn3.setImage(UIImage(named: "btn1"), forState: UIControlState.Normal)
        btn3.titleLabel?.font = UIFont.boldSystemFontOfSize(30)
        btn3.imageView?.contentMode = UIViewContentMode.ScaleAspectFit
        //btn3.imageEdgeInsets = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0)
        btn3.setTitle("图片按钮", forState: UIControlState.Normal)
        self.view.addSubview(btn3)
        
        //从系统定义的按钮类型创建Button
        var btn4:UIButton = UIButton.buttonWithType(UIButtonType.ContactAdd) as! UIButton
        //btn4.backgroundColor = UIColor.brownColor()
        btn4.frame.offset(dx: 60, dy: 200)
        self.view.addSubview(btn4)
        
        //创建禁止按钮
        var btn5:UIButton = UIButton(frame: CGRect(x: 50, y: 240, width: 100, height: 35))
        btn5.setTitle("点击按钮", forState: UIControlState.Highlighted)
        btn5.setTitle("禁止按钮", forState: UIControlState.Normal)
        btn5.enabled = false //设置按钮不能点击
        btn5.setTitleColor(UIColor.redColor(), forState: UIControlState.Disabled)//代表已经禁止
        btn5.backgroundColor = UIColor.purpleColor()
        self.view.addSubview(btn5)
        
        //创建一个圆角按钮
        var btn6:UIButton = UIButton(frame: CGRect(x: 50, y: 280, width: 100, height: 35))
        btn6.backgroundColor = UIColor.whiteColor()
        btn6.setTitleColor(UIColor.blackColor(), forState: UIControlState.Normal)
        btn6.setTitle("圆角按钮", forState: UIControlState.Normal)
        btn6.layer.cornerRadius = 5
        self.view.addSubview(btn6)
        
        //部分圆角按钮,主要是利用layer的mask属性,在通过CAShaperLayer和UIBezierPath来画
        var btn7:UIButton = UIButton(frame: CGRect(x: 50, y: 330, width: 100, height: 35))
        btn7.backgroundColor = UIColor.whiteColor()
        btn7.setTitleColor(UIColor.blackColor(), forState: UIControlState.Normal)
        btn7.setTitle("部分圆角按钮", forState: UIControlState.Normal)
        
        let shape:CAShapeLayer = CAShapeLayer()
        let bepath:UIBezierPath = UIBezierPath(roundedRect: btn6.bounds, byRoundingCorners: UIRectCorner.TopRight|UIRectCorner.TopLeft, cornerRadii: CGSize(width: 15, height: 15))
        
        UIColor.blackColor().setStroke()
        shape.path = bepath.CGPath
        
        btn7.layer.mask = shape
        self.view.addSubview(btn7)
        
        //创建折角按钮
        var btn8:UIButton = UIButton(frame: CGRect(x: 50, y: 380, width: 100, height: 35))
        btn8.backgroundColor = UIColor.whiteColor()
        
        btn8.setTitleColor(UIColor.blackColor(), forState: UIControlState.Normal)
        btn8.setTitle("折角按钮", forState: UIControlState.Normal)
        
        let shape8:CAShapeLayer = CAShapeLayer()
        let bepath8:UIBezierPath = UIBezierPath()
        bepath8.moveToPoint(CGPoint(x: 0,y: 0))
        bepath8.addLineToPoint(CGPoint(x: 80,y: 0))
        
        bepath8.addLineToPoint(CGPoint(x: 100,y: 15))
        bepath8.addLineToPoint(CGPoint(x: 100,y: 35))
        bepath8.addLineToPoint(CGPoint(x: 0,y: 35))
        bepath8.closePath()
        
        shape8.path = bepath8.CGPath
        
        btn8.layer.mask = shape8
        self.view.addSubview(btn8)
        
        //创建border按钮
        var btn9:UIButton = UIButton(frame: CGRect(x: 50, y: 420, width: 100, height: 35))
        btn9.backgroundColor = UIColor.whiteColor()
        btn9.setTitle("边框按钮", forState: UIControlState.Normal)
        btn9.setTitleColor(UIColor.blackColor(), forState: UIControlState.Normal)
        btn9.layer.borderColor = UIColor.blackColor().CGColor
        btn9.layer.borderWidth = 1
        btn9.layer.cornerRadius = 5
        self.view.addSubview(btn9)
        
        //
        
    }
    
    
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
    
    func clickEvent(sender:AnyObject){
        NSLog("按钮点击了事件")
    }
    
    
    
    
}

效果如下

DA06C42A-0C06-4E87-B5C5-D89D14BC7534.png

本文属于吴统威的博客原创文章,转载时请注明出处及相应链接:http://www.wutongwei.com/front/infor_showone.tweb?id=88

分享到:
评论

相关推荐

    Beginning iPhone Development with Swift Exploring the iOS SDK源代码

    4. **类与结构体**:Swift支持面向对象编程,类和结构体是创建自定义数据类型的两种方式,它们有自己的属性、方法和初始化器。 5. **协议与扩展**:协议定义了一组要遵循的方法和属性,而扩展允许为已有类型添加新...

    swift-SubmitButton是一组iOS动画提交按钮采用Swift开发

    1. 示例代码(Sample Code):展示如何创建和使用这些动画提交按钮,可能包含一个简单的Xcode项目,其中包含Swift源代码文件。 2. 自定义视图类(Custom View Classes):可能是创建这些动画效果的Swift类,覆盖了...

    ios demo,代码创建按钮button

    按钮可以包含文本、图像或者两者的组合,并且可以设置多种样式,如圆形或矩形,以及不同的边框、填充和文字样式。 在Swift中,创建一个基本的按钮可以通过以下步骤实现: 1. 导入UIKit框架:所有与用户界面相关的...

    swift国际化.zip

    Swift国际化(Swift Internationalization,简称i18n)是iOS应用开发中的一个重要环节,它涉及到如何使应用程序能够适应不同语言和地区的需求。`swift国际化.zip`包含的开源项目`Localize-Swift-master`是一个用于...

    ios-Swift版本的多国语言本地化--实现应用内切换.zip

    总结,实现iOS应用的Swift版本多国语言本地化,包括创建和管理语言资源文件,使用`NSLocalizedString`获取字符串,以及处理应用内语言切换和系统静态控件的语言适配。通过上述步骤,开发者可以轻松地为全球用户提供...

    swift-Wallet是Apple'sWalletinterface的一个复制。可用于添加删除或展示你的卡片和护照

    - 创建和配置Xcode项目。 - 使用Swift语言编写可复用的代码模块。 - 设计和实现用户界面。 - 处理用户交互和事件响应。 - 应用数据模型和持久化策略。 - 实现动画效果提升用户体验。 - 考虑应用的安全性和隐私保护。...

    《iOS开发实战:苹果生态圈编程卷(Swift语言版)》代码.7z

    在这个压缩包中,"code"目录可能包含了多个子目录和Swift源代码文件,每个都代表了一个具体的示例或者功能模块。这些代码示例涵盖了iOS开发的各个方面,比如UI设计、网络通信、数据持久化、多线程处理、动画效果、...

    IOS应用源码——SampleCode3.0.rar

    4. **App生命周期与状态管理**: 学习如何处理应用启动、暂停、恢复和终止等不同状态,以及如何响应系统事件。 5. **数据持久化**: 如何利用Core Data、SQLite、plist文件或云服务存储应用数据。 6. **网络编程**: ...

    ios-swift 自定义友盟分享功能,微信分享。真机调试已过。.zip

    在上面的代码中,我们创建了一个`UMSocialContent`对象,设置了分享的文字、图片和网页链接。然后,通过`UMSocialManager`的`shareToPlatform`方法,将内容分享到微信会话。 需要注意的是,微信对分享的文件大小有...

    iOS.Apprentice.Code.v5.0.zip

    这个压缩包中包含四个子文件,每个对应教程的不同部分,分别是"The iOS Apprentice 1 - Getting Started"、"The iOS Apprentice 3 - MyLocations"、"The iOS Apprentice 2 - Checklists"以及"The iOS Apprentice 4 -...

    change the size of button

    按钮的大小通常由其宽度和高度定义,可以通过编程方式直接设置这两个属性。在不同的编程环境和框架中,这个过程会有所不同,但核心思想是一致的:修改按钮对象的尺寸属性。 1. **HTML/CSS**: 在网页开发中,HTML...

    IOS应用源码——感恩---奉上大量samplecode(第5部分) 归档 4.rar

    这个项目可能涉及到UITableView的使用,用于显示联系人列表,以及UIKit框架中的其他元素如UIButton和UIImageView来创建交互式UI。此外,它还可能涉及CoreData或UserDefaults来存储联系人信息,以及AVFoundation库来...

    IPhone Native Code案例

    在iOS开发领域,iPhone Native Code通常指的是使用Objective-C或Swift这两种苹果官方支持的原生编程语言编写的代码,用于创建iOS应用。本案例"IPhone Native Code案例"应该是提供了一个实际的项目,帮助开发者深入...

    ios应用源码之很感恩---samplecode(end)归档 7 2018127

    这个压缩包"ios应用源码之很感恩---samplecode(end)归档 7 2018127"似乎包含了一个iOS应用的源代码,可能是某个开发者在2018年12月7日整理并归档的结束部分。通过分析这个源码,我们可以深入学习iOS应用的开发...

    Calculator-Swift:使用 Swift 编写的简单计算器应用程序

    在本项目中,我们关注的是一个使用 Swift 编程语言创建的简单计算器应用程序。Swift 是苹果公司为开发 iOS、macOS、watchOS 和 tvOS 应用程序而设计的一种强大且直观的编程语言。这个计算器项目是初学者学习 Swift ...

    iOS 9 by Tutorials Code2_1.zip

    "4_starter"阶段会介绍如何创建和管理模型对象,以及如何在控制器中协调视图和模型。 五、Core Data Core Data是Apple提供的数据持久化框架,用于存储和检索应用程序的数据。我们将学习如何设置Core Data模型,使用...

    DesignerNewsApp:使用Swift的Design + Code教程的示例iOS应用程序

    DesignerNewsApp是一个基于Design + Code教程创建的应用,它旨在展示如何将设计概念转化为实际的代码,将设计师的作品与程序员的技能紧密结合,打造美观且功能丰富的iOS应用。这个项目不仅帮助开发者学习Swift的基本...

    IPHONE创意开发入门与实战 Source Code

    10. **SwiftUI**(如果涉及):Swift的新特性,允许开发者以声明式的方式构建用户界面,简化了UI开发。 通过本书的源代码,你可以逐步了解并掌握这些知识点,实现从零到一的开发过程。记得在实践中不断尝试、修改和...

    【工具】-ButtonMaker.7z

    ButtonMaker 是一个针对 iOS 开发者的工具,主要用途是帮助开发者快速创建和设计自定义的按钮(Button)界面。这个工具可能包含源代码,因此标签为 "iOS-Sourcecode",意味着我们可以深入学习和理解其内部工作原理,...

    【类库与框架】-iPhone Gradient Buttons.7z

    在实际项目中,我们通常会为UIButton创建一个类别(Category)或扩展(Extension),在其中添加方法来设置渐变色。这样,可以在整个项目中统一处理按钮的样式,提高代码复用性。 4. **Swift或Objective-C实现**: ...

Global site tag (gtag.js) - Google Analytics