Three.jsを使って、作ってみた

プログラミング関連の事を色々書いています(^^) 週末はレストランやコンビニのお菓子のことを書いています。

Swift 機種判定をする

今回は、swiftで、画面の高さから機種を判定する方法を書きます。

つまり、画面の高さを取得して、その値からiPhone5なのかiPhone6なのかを判定します。

こんな感じに書きます。

// アプリ実行端末のディスプレイサイズの高さを取得
let display: CGRect  = UIScreen.mainScreen().bounds

if (display.size.height == 568) {   // iPhone 5 の場合
   println("5")
} else if (display.size.height == 667) { // iPhone 6 の場合
   println("6")
} else if (display.size.height == 736) { // iPhone 6 Plus の場合
   println("6+")
}

実行結果
f:id:gupuru:20150126002826p:plain

ちなみに、「display.size.width」とすると、横幅が取れます。

これで、終わります。


Swiftは、まだまだ勉強中ですので、間違っているかもしれません。間違っていましたら、ご指摘をお願いしますm(_ _)m

Swift UIButtonに下線をつける

今回は、swiftでUIButtonに下線をつける方法を書きます。

こんな感じの下線を作る方法です↓↓
f:id:gupuru:20150125235025p:plain

このように、書きます。※UIButtonは、Storyboardで配置しています。

import UIKit

class ViewController: UIViewController {

@IBOutlet weak var btn: UIButton!
var border: UIView!

    override func viewDidLoad() {
        super.viewDidLoad()
     
        // 下線を生成
        border = UIView(frame: CGRectMake(0, btn.frame.size.height - 0.3, btn.frame.size.width, 2))
        
        // 下線の色を設定
        border.backgroundColor = UIColor.redColor()

        self.btn.addSubview(self.border)
    }

}

実行結果
f:id:gupuru:20150125235025p:plain

線の太さや長さはこちらで指定しています。

        border = UIView(frame: CGRectMake(0, btn.frame.size.height - 0.3, btn.frame.size.width, 2))

CGRectMakeの引数はコチラに書かれています。
簡単に言いますと、第1引数から、X座標、Y座標、幅、高さとなっています。


下線の色は、こちらで指定しています。

        border.backgroundColor = UIColor.redColor()

もちろん、「UIColor.blueColor()」とかにしたら、青色になります(笑)
f:id:gupuru:20150126000445p:plain


最後に、UIButtonに「addSubview」するのを忘れないように(笑)

これで、終わります。


参考サイト
サイズ指定(CGRect CGPoint CGSize) - iPhoneアプリ開発の虎の巻

Swiftは、まだまだ勉強中ですので、間違っているかもしれません。間違っていましたら、ご指摘をお願いしますm(_ _)m

Swift Base64方式でエンコード・デコードする

今回は、swiftBase64方式でエンコード・デコードする方法を書きます。


ちなみにBase64というのは、データを64種類の印字可能な英数字のみを用いて、それ以外の文字を扱うことの出来ない通信環境にてマルチバイト文字やバイナリデータを扱うためのエンコード方式である。MIMEによって規定されていて、7ビットのデータしか扱うことの出来ない電子メールにて広く利用されている。

と、ウィキペディアに書かれています。


まず始めに、Base64で、文字列をエンコードする方法を書きます。

 let text: String = "Test1"

//エンコード
let data = text.dataUsingEncoding(NSUTF8StringEncoding)
let base64Str = data!.base64EncodedStringWithOptions(NSDataBase64EncodingOptions.Encoding64CharacterLineLength)
        
println(base64Str)

実行結果
f:id:gupuru:20150112175221p:plain

「Test1」という文字列を、Base64エンコードしています。


今度は、デコードする方法を書きます。

let base64Text = "VGVzdDE="

let decodedData = NSData(base64EncodedString: base64Text, options: NSDataBase64DecodingOptions.IgnoreUnknownCharacters)
 if let decodedString = NSString(data: decodedData!, encoding: NSUTF8StringEncoding) {
    println(decodedString)
  }

実行結果
f:id:gupuru:20150112175727p:plain

Base64エンコードされた「VGVzdDE=」を文字列にデコードしています。


最後に、画像(UIImage)をBase64方式でエンコードする方法を書きます。

var jpgData: NSData = NSData(data: UIImageJPEGRepresentation(UIImage(named: "test"), 0.5))

jpgData.base64EncodedStringWithOptions(NSDataBase64EncodingOptions.Encoding64CharacterLineLength)

 println(jpgData)

実行結果
f:id:gupuru:20150112180443p:plain

UIImageJPEGRepresentationという関数を使って、NSDataを作り、それをエンコードします。
UIImageJPEGRepresentationの第1引数に「UIImage」第2引数に圧縮率を指定してます。


これで、終わります。


参考サイト
base64エンコード・デコード(「Test1」をbase64でエンコード)
Swift: Base64 方式でエンコードする - Sarabande.jp
iPhoneアプリ開発・アプリ内への写真の保存 | hiro2 studio別館


Swiftは、まだまだ勉強中ですので、間違っているかもしれません。間違っていましたら、ご指摘をお願いしますm(_ _)m