[Swift2]#pragma markの利用

これまでObject-Cでは

#pragma mark コメント

のようにしてセクション分けをして見やすくできました。

Swiftではそのままの形では使えないので以下のようにします。

//Mark: コメント

区切り線を入れたい場合は、

//Mark:- コメント

のように、コメントの前に”- “を入れます。(空白が大事です)

このようにするとコメントの前に区切り線が入ります

 

[Swift2]文字列の描画領域サイズの取得

簡単な関数にしてみました。

func getStringRectSize(str: String) -> CGSize {

let str = “STRING”
let nssString = str as NSString
let strSize: CGSize = nssString.sizeWithAttributes([NSFontAttributeName: UIFont.systemFontOfSize(CGFloat(14.0))])
print(“[\(strSize.width),\(strSize.height)]”)

return strSize

}

 

戻り値として、パラメータに指定した文字列に必要な領域のサイズがCGSizeとして返却されます。

 

 

[Swift2]CALayerでiPhone6Plusの時だけViewの角が丸くならない

先にコードを書きます。
@IBOutlet weak var iconImage: UIImageView!
override func viewDidLoad() {

super.viewDidLoad()

// Do any additional setup after loading the view, typically from a nib.

iconImage.layer.masksToBounds = true
iconImage.layer.cornerRadius = 10.0

}

iconImage.layer.cornerRadius = 10.0

だけで

iconImage.layer.masksToBounds = true

を入れないと、なぜかiPhone6Plusだけ、角が丸くなりません。

他のiPhone5とかiPhone6はちゃんと丸くなるのにー。

ということで、この2行でどのiPhoneでもViewの角が丸くなるようです。

 

 

 

iOS9でhttps通信をする

 

iOS9より前のアプリをiOS9で利用するとhttps通信部でエラーになることがあります。

というか、自分の作ったアプリがそうなりました(汗

で、どうしたかというと・・・

info.plistに赤い枠の中にあるようにKeyとValueを加えて、SSLの通信を行わせるようにしました。

httpErrorScreenShot

 

本当はドメイン毎に設定する方法もあるので、そっちの方がいいのかもしれませんが

今回は面倒臭いのでサーバー全部を対象にして上記のように設定しちゃいました。

というのも、公開してるアプリではなく、テストで作ったアプリだからです。

公開するアプリの場合は、もうちょっと考えて設定した方がいいかもしれません、あしからず

 

 

[Swift2]UIImageViewの初期化メソッドを書く

実はUIImageViewに限らずですが、ヘヘヘっ

基本的にはObjective-Cで書いていたコードをSwiftに移植すればいいだけです

そのSwiftコードはというと、こんな感じ

 

import UIKit

class clsivN01Score: UIImageView {

//Storyboard/Interface Buidlerで作成する場合に呼ばれる

required init?(coder aDecoder: NSCoder) {

super.init(coder: aDecoder)

//ここから初期化コードを書く

}

 

//時前コードで作成する場合に呼ばれる

override init(frame: CGRect) {

super.init(frame: CGRectMake(0,0,0,0))

//ここから初期化コードを書く

}

}

[Swift]機種ごとにStoryboardを切り替えて使う

前準備として必要なStoryboardをプロジェクトに追加しておきます。

ここでは次のStoryboardを追加してます

iphone3.5inch.swift

iphone4.0inch.swift

iphone4.7inch.swift

iphone5.5inch.swift

ipad.swift

 

それからAppDelegate.swiftのdidFinishLaunchingWithOptionsにこんな感じで書き足します。(見づらくてごめんなさい)

 

import UIKit
import CoreData

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

var window: UIWindow?

var storyboardName: NSString!

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.

//機種判定
if UIDevice.currentDevice().userInterfaceIdiom == .Phone {

let myBoundSize: CGSize = UIScreen.mainScreen().bounds.size

if myBoundSize.height == CGFloat(480.0) {
storyboardName = “iphone3.5inch
} else if myBoundSize.height == CGFloat(568.0) {
storyboardName = “iphone4.0inch
} else if myBoundSize.height == CGFloat(667.0) {
storyboardName = “iphone4.7inch
} else {
storyboardName = “iphone5.5inch
}

} else if UIDevice.currentDevice().userInterfaceIdiom == .Pad {
storyboardName = “ipad
} else {
storyboardName = “Main”  //とりあえずデフォルト設定
}

// StoryBoardのインスタンス化
let storyboard: UIStoryboard! = UIStoryboard(name: storyboardName as String, bundle: nil)
// 画面の生成
let mainViewController = storyboard!.instantiateInitialViewController()
// ルートウィンドウに各Storyboardを紐付ける
self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
self.window?.rootViewController = mainViewController
self.window?.makeKeyAndVisible()

return true
}

その他もろもろ続く



}

これだけです。

やってみてねー

「Photagonist」がバージョンアップされました。

本日、iPhoneアプリ「Photagonist」バージョン1.2をリリースしました。

今回のバージョンアップでは

同じ写真に対して何カ所かにマスクをかけたいときは一度保存してから再度読み直してという操作が必要でしたが

今回のバージョンではマスク処理をいくつも追加出来るようにして

手間が省けるようになりました。

ダウンロードしてみてね〜(^^)

ダウンロードはApp Storeからです。ここ

 

やっと

昨年から、ずっと更新できていなかったウェブサイトの更新をやっと進められました(^_^)ゞ

これからはなるべく更新していこうと思ってます。
開発していく過程で発生した問題などや、日々思ったことをどんどん書いていこうと思ってます。

どうぞよろしくお願いします。