とりあえずSwiftで2次元配列をどう使えばいいかPlaygroundで確認しましたよ。
これを見れば、わかる人にはわかる!(笑
とりあえず型を指定しないで書くのはこんな感じかな(^^)
これまでObject-Cでは
#pragma mark コメント
のようにしてセクション分けをして見やすくできました。
Swiftではそのままの形では使えないので以下のようにします。
//Mark: コメント
区切り線を入れたい場合は、
//Mark:- コメント
のように、コメントの前に”- “を入れます。(空白が大事です)
このようにするとコメントの前に区切り線が入ります
簡単な関数にしてみました。
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として返却されます。
先にコードを書きます。
@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の角が丸くなるようです。
実は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))
//ここから初期化コードを書く
・
・
・
}
}
前準備として必要な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
}
その他もろもろ続く
・
・
・
・
}
これだけです。
やってみてねー
本日、iPhoneアプリ「Photagonist」バージョン1.2をリリースしました。
今回のバージョンアップでは
同じ写真に対して何カ所かにマスクをかけたいときは一度保存してから再度読み直してという操作が必要でしたが
今回のバージョンではマスク処理をいくつも追加出来るようにして
手間が省けるようになりました。
ダウンロードしてみてね〜(^^)
ダウンロードはApp Storeからです。ここ
昨年から、ずっと更新できていなかったウェブサイトの更新をやっと進められました(^_^)ゞ
これからはなるべく更新していこうと思ってます。
開発していく過程で発生した問題などや、日々思ったことをどんどん書いていこうと思ってます。
どうぞよろしくお願いします。