iOS开发——实用篇Swift篇&项目开发常用实用技术

项目开发常用实用技术

实现拨打电话

要实现打电话功能,最简单最直接的方式便是:直接跳到拨号界面

(注意:这个需要真机调试,模拟器无效果)

1 //自动打开拨号页面并自动拨打电话 2 UIApplication.sharedApplication().openURL(NSURL(string :"tel://123456")!)

邮件发送功能的实现

2015-07-17 10:38发布:yuhang浏览:21

使用MessageUI.framework框架除了可以发送短信,还能发送Email,步骤如下:

(1)首先判断设备是否有发送邮件功能

(2)如果设备允许发送邮件,创建一个MFMailComposeViewController视图控制器,并对其设置邮件标题,正文内容,收件人,附件等。

(3)邮件发送后,会执行回调代理方法,可以获取发送结果(成功,失败或取消)

效果图如下:

代码如下:

 1 import UIKit
 2 import MessageUI
 3
 4 class ViewController: UIViewController ,UINavigationControllerDelegate,
 5 MFMailComposeViewControllerDelegate{
 6
 7     override func viewDidLoad() {
 8         super.viewDidLoad()
 9
10         //首先要判断设备具不具备发送邮件功能
11         if MFMailComposeViewController.canSendMail(){
12             let controller = MFMailComposeViewController()
13             //设置代理
14             controller.mailComposeDelegate = self
15             //设置主题
16             controller.setSubject("我是邮件标题")
17             //设置收件人
18             controller.setToRecipients(["[email protected]","[email protected]"])
19             //设置抄送人
20             controller.setCcRecipients(["[email protected]","[email protected]"])
21             //设置密送人
22             controller.setBccRecipients(["[email protected]","[email protected]"])
23
24             //添加图片附件
25             var path = NSBundle.mainBundle().pathForResource("hangge.png", ofType: "")
26             var myData = NSData(contentsOfFile: path!)
27             controller.addAttachmentData(myData, mimeType: "image/png", fileName: "swift.png")
28
29             //设置邮件正文内容(支持html)
30             controller.setMessageBody("我是邮件正文", isHTML: false)
31
32             //打开界面
33             self.presentViewController(controller, animated: true, completion: nil)
34         }else{
35             println("本设备不能发送邮件")
36         }
37     }
38
39     //发送邮件代理方法
40     func mailComposeController(controller: MFMailComposeViewController!,
41         didFinishWithResult result: MFMailComposeResult, error: NSError!) {
42         controller.dismissViewControllerAnimated(true, completion: nil)
43
44         switch result.value{
45             case MFMailComposeResultSent.value:
46                 println("邮件已发送")
47             case MFMailComposeResultCancelled.value:
48                 println("邮件已取消")
49             case MFMailComposeResultSaved.value:
50                 println("邮件已保存")
51             case MFMailComposeResultFailed.value:
52                 println("邮件发送失败")
53             default:
54                 println("邮件没有发送")
55                 break
56         }
57     }
58
59     override func didReceiveMemoryWarning() {
60         super.didReceiveMemoryWarning()
61     }
62 }

短信发送功能的实现

2015-07-16 10:38发布:yuhang浏览:20

使用MessageUI.framework框架可以实现短信发送功能,步骤如下:

(1)首先判断设备是否有发送短信功能

(2)如果设备允许发送短信,创建一个MFMessageComposeViewController视图控制器,并对其设置短信内容和收件人号码列表。

(3)短信发送后,会执行回调代理方法,可以获取发送结果(成功,失败或取消)

代码如下:

 1 import UIKit
 2 import MessageUI
 3
 4 class ViewController: UIViewController ,UINavigationControllerDelegate,
 5 MFMessageComposeViewControllerDelegate{
 6
 7     override func viewDidLoad() {
 8         super.viewDidLoad()
 9         // Do any additional setup after loading the view, typically from a nib.
10
11         //首先要判断设备具不具备发送短信功能
12         if MFMessageComposeViewController.canSendText(){
13             let controller = MFMessageComposeViewController()
14             //设置短信内容
15             controller.body = "短信内容:欢迎来到hangge.com"
16             //设置收件人列表
17             controller.recipients = ["123456","120000"]
18             //设置代理
19             controller.messageComposeDelegate = self
20             //打开界面
21             self.presentViewController(controller, animated: true, completion: { () -> Void in
22
23             })
24         }else{
25             println("本设备不能发送短信")
26         }
27     }
28
29     //发送短信代理
30     func messageComposeViewController(controller: MFMessageComposeViewController!,
31         didFinishWithResult result: MessageComposeResult) {
32         controller.dismissViewControllerAnimated(true, completion: nil)
33         switch result.value{
34             case MessageComposeResultSent.value:
35                 println("短信已发送")
36             case MessageComposeResultCancelled.value:
37                 println("短信取消发送")
38             case MessageComposeResultFailed.value:
39                 println("短信发送失败")
40             default:
41                 break
42         }
43     }
44
45     override func didReceiveMemoryWarning() {
46         super.didReceiveMemoryWarning()
47     }
48 }

手机摇晃的监测和响应

2015-07-03 16:25发布:yuhang浏览:39

摇晃手机也是一种常用的交互手段(比如微信摇一摇功能)。iOS SDK中已经将shake事件方便地融合进去了,就像触发touch事件一样简单,发生摇晃事件后程序会自动执行。

 1 import UIKit
 2
 3 class ViewController: UIViewController {
 4
 5     override func viewDidLoad() {
 6         super.viewDidLoad()
 7     }
 8
 9     //开始摇晃
10     override func motionBegan(motion: UIEventSubtype, withEvent event: UIEvent) {
11         println("开始摇晃")
12     }
13
14     //摇晃结束
15     override func motionEnded(motion: UIEventSubtype, withEvent event: UIEvent) {
16         println("摇晃结束")
17     }
18
19     //摇晃被意外终止
20     override func motionCancelled(motion: UIEventSubtype, withEvent event: UIEvent) {
21         println("摇晃被意外终止")
22     }
23 }

判断设备方向(或监听设备方向的改变)

2015-07-03 16:10发布:yuhang浏览:32

通过UIDevice.currentDevice()来获取设备,可以取得设备当前的方向。

同时,我们可以添加一个通知来监听设备方向的变化,这样在开发中可以对不同的方向定制不同的排版布局界面。

下面通过一个样例,演示如何监测设备方向:

 1 import UIKit
 2
 3 class ViewController: UIViewController {
 4
 5     @IBOutlet weak var orientationLabel: UILabel!
 6
 7     override func viewDidLoad() {
 8         super.viewDidLoad()
 9
10         //感知设备方向 - 开启监听设备方向
11         UIDevice.currentDevice().beginGeneratingDeviceOrientationNotifications()
12         //添加通知,监听设备方向改变
13         NSNotificationCenter.defaultCenter().addObserver(self, selector: "receivedRotation",
14             name: UIDeviceOrientationDidChangeNotification, object: nil)
15
16         //关闭设备监听
17         //UIDevice.currentDevice().endGeneratingDeviceOrientationNotifications()
18     }
19
20     //通知监听触发的方法
21     func receivedRotation(){
22         var device = UIDevice.currentDevice()
23         switch device.orientation{
24             case .Portrait:
25                 orientationLabel.text = "面向设备保持垂直,Home键位于下部"
26             case .PortraitUpsideDown:
27                 orientationLabel.text = "面向设备保持垂直,Home键位于上部"
28             case .LandscapeLeft:
29                 orientationLabel.text = "面向设备保持水平,Home键位于左侧"
30             case .LandscapeRight:
31                 orientationLabel.text = "面向设备保持水平,Home键位于右侧"
32             case .FaceUp:
33                 orientationLabel.text = "设备平放,Home键朝上"
34             case .FaceDown:
35                 orientationLabel.text = "设备平放,Home键朝下"
36             case .Unknown:
37                 orientationLabel.text = "方向未知"
38             default:
39                 orientationLabel.text = "方向未知"
40         }
41     }
42 }
时间: 2024-12-23 23:26:00

iOS开发——实用篇Swift篇&项目开发常用实用技术的相关文章

ios开发——实用技术篇Swift篇&地址薄、短信、邮件

1 //返回按钮事件 2 @IBAction func backButtonClick() 3 { 4 self.navigationController?.popViewControllerAnimated(true) 5 } 6 7 //新增联系人 8 @IBAction func addPeople () 9 { 10 //取得电话薄句柄 11 var error:Unmanaged<CFError>? 12 var addressBook: ABAddressBookRef? = AB

ios开发——实用技术篇Swift篇&amp;播放MP3

播放MP3 1 // MARK: - 播放MP3 2 /*----- mp3 ------*/ 3 //定时器- 4 func updateTime() 5 { 6 //获取音频播放器播放的进度,单位秒 7 var cuTime:Float = Float(audioPlayer.currentTime) 8 9 //更新进度条 10 jinDuSlider.value = cuTime 11 12 //获取总时间 13 var duTime:Float = Float(audioPlayer.

ios开发——实用技术篇Swift篇&amp;多点触摸与手势识别

多点触摸与手势识别 1 2 //点击事件 3 var atap = UITapGestureRecognizer(target: self, action: "tapDo:") 4 self.view.addGestureRecognizer(atap) 5 atap.numberOfTapsRequired = 1 //单击次数 6 atap.numberOfTouchesRequired = 1 //手指个数 7 8 //拖动事件 9 var aPan = UIPanGesture

ios开发——实用技术篇Swift篇&amp;系统声音

系统声音 1 // MARK: - 系统声音 2 /*----- 系统声音 ------*/ 3 @IBAction func systemSound() 4 { 5 //建立的SystemSoundID对象 6 var soundID: SystemSoundID = 0 7 8 //获取声音文件地址 9 var path = NSBundle.mainBundle().pathForResource("SaoMa", ofType: "wav") 10 11 /

ios开发——实用技术篇Swift篇&amp;录音

录音 1 // MARK: - 录音 2 /*----- 录音 ------*/ 3 4 var recorder:AVAudioRecorder? //录音器 5 var player:AVAudioPlayer? //播放器 6 var recorderSettingsDic:[NSObject : AnyObject]? //录音器设置参数数组 7 var volumeTimer:NSTimer!//定时器线程, 刷新音量 8 var aacPath:String? //录音存储路径 9

ios开发——实用技术篇Swift篇&amp;照片选择

照片选择 1 // MARK: - 选择照片 2 /*----- 选择照片 ------*/ 3 @IBAction func addImageButtonClick() 4 { 5 let actionSheet = UIActionSheet(title: "请选择", delegate: self, cancelButtonTitle: "取消", destructiveButtonTitle: nil, otherButtonTitles: "从相

ios开发——实用技术篇Swift篇&amp;加速计和陀螺仪

加速计和陀螺仪 1 //返回按钮事件 2 @IBAction func backButtonClick() 3 { 4 self.navigationController?.popViewControllerAnimated(true) 5 } 6 7 8 @IBOutlet var xLabel:UILabel! 9 @IBOutlet var yLabel:UILabel! 10 @IBOutlet var zLabel:UILabel! 11 12 @IBOutlet var orient

ios开发——实用技术篇Swift篇&amp;视频

视频 1 // MARK: - 播放视频 2 /*----- 播放视频 ------*/ 3 4 5 func moviePlayerPreloadFinish(notification:NSNotification) 6 { 7 println("播放完毕") 8 } 9 10 //声明一个媒体播放器 11 var moviePlayer:MPMoviePlayerController? 12 13 @IBAction func playMV() 14 { 15 let filePa

ios开发——实用技术篇Swift篇&amp;拍照

拍照 1 // MARK: - 拍照 2 func fromPhotograph() 3 { 4 if UIImagePickerController.isSourceTypeAvailable(.Camera) 5 { 6 //创建图片控制器 7 let picker = UIImagePickerController() 8 9 //设置代理 10 picker.delegate = self 11 12 //设置来源 13 picker.sourceType = UIImagePicker

当用Myeclipse8.6集成开发环境,进行JavaWeb项目开发的时候,用集成开发环境中的run Server进行程序调试时,出现如下错误解决方案

当用Myeclipse8.6集成开发环境,进行JavaWeb项目开发的时候,用集成开发环境中的run Server进行程序调试时,出现如下错误解决方案: 'Starting Tomcat v6.0 Server at localhost'has encountered a problem 错误提示: Several ports(8080,8009)required by Tomcatv6.0 Server at localhost are already in use.The server ma