Xuni for IOS のドキュメント
画像のエクスポート

XuniGauge を使用して、ゲージを画像の形式でエクスポートし、それを iOS デバイスのカメラロールに保存したり、必要に応じて好きな場所を選択して保存できます。iPhone や iPad でとるスクリーンショットとまったく同様に機能します。次の例では、スナップショットボタンを XuniGauge の上端に追加します。ユーザーは、ボタンをタップしてチャートをギャラリーに保存できます。

サンプルコード

Objective-C
コードのコピー
var radialGauge = XuniRadialGauge()
    var snapshotButton = UIButton()
    var snapshotImage = UIImageView()
    
        override func viewDidLoad() {
        super.viewDidLoad()

        snapshotButton = UIButton.buttonWithType(UIButtonType.System) as! UIButton
        snapshotButton.setTitle("画像の取得", forState: UIControlState.Normal)
        snapshotButton.addTarget(self, action: "snapshotButtonClicked", forControlEvents: UIControlEvents.TouchUpInside)

        radialGauge.showText = XuniShowText.All
        radialGauge.thickness = 0.6
        radialGauge.min = 0
        radialGauge.max = 100
        radialGauge.value = 25
        radialGauge.loadAnimation.duration = 2
        radialGauge.updateAnimation.duration = 2
        radialGauge.pointer.thickness = 0.5
        self.view.addSubview(snapshotButton)
        self.view.addSubview(radialGauge)
        self.view.addSubview(snapshotImage)
        NSTimer.scheduledTimerWithTimeInterval(4, target: self, selector: "animateNextStep", userInfo: nil, repeats: true)

    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        
    }
    
    
    override func viewDidLayoutSubviews() {
        super.viewDidLayoutSubviews()
        
        var r1 = XuniRect(left: 5, top: 115, width: Double(self.view.bounds.size.width-10), height: Double(self.view.bounds.size.height/2 - 65))
        
        radialGauge.frame = CGRectMake(5, 115, self.view.bounds.size.width-10, self.view.bounds.size.height/2 - 65)
        radialGauge.rectGauge = r1
        snapshotImage.frame = CGRectMake(5, self.view.bounds.size.height / 2 + 65, self.view.bounds.size.width - 10, self.view.bounds.size.height/2 - 65)
        snapshotButton.frame = CGRectMake(0, 65, self.view.bounds.size.width, 50)
        radialGauge.setNeedsDisplay()
    }
    
    func animateNextStep(){
        radialGauge.value = Double(arc4random() % 101)
    }
    func snapshotButtonClicked(){
        var image = UIImage(data: radialGauge.getImage())
        UIImageWriteToSavedPhotosAlbum(image, self, "imageSavedToPhotoAlbum:error:contextInfo:", nil)
        snapshotImage.image = image
    }
    func imageSavedToPhotoAlbum(image: UIImage!, error: NSError!, contextInfo: UnsafePointer<Void>){
        var message = String()
        var title = String()
        if(error == nil){
            title = "成功"
            message = "画像はカメラロールに正常に保存されました。"
        }
        else{
            title = "失敗"
            message = error.description
        }
        var alert = UIAlertView(title: title, message: message, delegate: nil, cancelButtonTitle: "OK")
        alert.show();
    }

 

 


Copyright © GrapeCity inc. All rights reserved.