lilieのブログ

lilieのブログ

Webサイト、iPhone/Androidアプリの開発エンジニアの備忘録です。

Amebaでブログを始めよう!
Swiftは型に甘いけど、型に厳しい・・・という点がObjective-C経験者に慣れないところ。

よく使われる、CGRectのorigin.xなどはCGFloatなので、
このままFloatやDouble型の変数と計算するときに、エラーとなります。

↓これはエラー
let myOriginX = self.view.frame.origin.x
let myDouble = 1.5
let total = myOriginX + myDouble

↓Doubleでキャストしてから計算する
let myOriginX = self.view.frame.origin.x
let myDouble = 1.5
let total = Double(myOriginX) + myDouble

でも、よく使うCGFloatを気軽に使いたいので、
キャスト用のExtensionを作ったほうがよいかも。
チームで開発するなら、そうすべきでしょうね。

UIViewContentModeScaleAspectFitはSwiftでどう書くの?

■Objective-C
imageView.contentMode = UIViewContentModeScaleAspectFill;

■Swift
imageView.contentMode = .ScaleAspectFill
imageView.contentMode = UIViewContentMode.ScaleAspectFill

Objective-Cで書いたプログラムをSwiftで焼き直し中ですが、
なかなか書き方がガラッと変わってて、
Objective-C→Javaの時と同じくらいのコストかかりそうだわ。。。
Androidアプリ内から、メーラーでHTMLメールを送るには、以下のようなプログラムで実行できます。

----------------------------

String strMemo = "<HTML><BODY><a href="http://URLを指定">testだよ</a></BODY></HTML>";
final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
emailIntent.setType("text/html");
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, DefineStrings.GroupMailSubject);
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, Html.fromHtml(strMemo));
startActivity(Intent.createChooser(emailIntent, "Email:"));

----------------------------

ただし、注意点があります。

・ドコモの場合、Spモードメールが選択できません。。。
・URLスキーム(originalurl://testのような)はハイパーリンクがつきますが、クリックしても反応しません。

gmailを頻繁に使うユーザーが多いアプリならいいですが、
URLスキームも反応しないし、Spモードメール立ち上がらないし…ね。。。

※Spモードメールも選択できるよ!というご意見あれば、ぜひ教えてくださいm(__)m