どーしよー。

エピソード1 どーしよーの旅立ち

CGRectとかをNSLogで簡単に出す方法

画面の frame をログに出したい!

でも frame は CGRect。ちょっと手間・・・


どーしよー。


簡単に出したい!

何かないかな〜

UIKit の
UIGeometry.h の中にありました!

// UIGeometry.h

NSString *NSStringFromCGPoint(CGPoint point);
NSString *NSStringFromCGVector(CGVector vector);
NSString *NSStringFromCGSize(CGSize size);
NSString *NSStringFromCGRect(CGRect rect);
NSString *NSStringFromCGAffineTransform(CGAffineTransform transform);
NSString *NSStringFromUIEdgeInsets(UIEdgeInsets insets);
NSString *NSStringFromUIOffset(UIOffset offset);


実際に使ってみるとこんな感じです。

CGRect frame = self.view.frame;
NSLog(@"frame = %@", NSStringFromCGRect(frame));

CGSize size = self.view.frame.size;
NSLog(@"size = %@", NSStringFromCGSize(size));

CGPoint origin = self.view.frame.origin;
NSLog(@"origin = %@", NSStringFromCGPoint(origin));

出力結果
frame = {{0, 0}, {320, 568}}
size = {320, 568}
origin = {0, 0}


他にも CGVector、CGAffineTransform、UIEdgeInsets、UIOffsetのログ出力が簡単にできますね。

便利!

ファンクションキーの動作を切り替える方法

キーボードの上の方にファンクションキーがありますよね?

「F1」〜「F12」と共に、ボリュームの変更などのアイコンも描いてあります。

ファンクションの機能を呼びたいけど、「画面が明るくなってしまった!」なんてことが良くあります。

[command]キーの隣にある[fn]を押しながら「F2」を押すとか面倒で、デフォルトの設定を切り替えたい・・・

どーしよー。

調べました。

設定ありました。

環境設定のキーボード!

ここにチェックを入れればOKです。

f:id:zakirosh:20150319190716p:plain



参考URL
Mac OS X:ファンクションキーの動作を変更する方法 - Apple サポート

あ、UILineBreakMode◯◯も使えないんだった!

前回の記事から数時間経過・・・

あ、UITextAlignment◯◯は使えないんだった! - どーしよー。

まだ警告が残ってる!

'UILineBreakModeTailTruncation' is deprecated: first deprecated in iOS 6.0

そうだ、UILineBreakMode◯◯も使えないんだ・・・

ホントすぐ忘れるんでメモ。

iOS5までは、この定義で大丈夫。
// Deprecated: use NSLineBreakMode instead
typedef NS_ENUM(NSInteger, UILineBreakMode) {
    UILineBreakModeWordWrap = 0,            // Wrap at word boundaries
    UILineBreakModeCharacterWrap,           // Wrap at character boundaries
    UILineBreakModeClip,                    // Simply clip when it hits the end of the rect
    UILineBreakModeHeadTruncation,          // Truncate at head of line: "...wxyz". Will truncate multiline text on first line
    UILineBreakModeTailTruncation,          // Truncate at tail of line: "abcd...". Will truncate multiline text on last line
    UILineBreakModeMiddleTruncation,        // Truncate middle of line:  "ab...yz". Will truncate multiline text in the middle
} NS_DEPRECATED_IOS(2_0,6_0);
iOS6以降は、この定義。
// NSParagraphStyle
typedef NS_ENUM(NSInteger, NSLineBreakMode) {    /* What to do with long lines */
    NSLineBreakByWordWrapping = 0,  /* Wrap at word boundaries, default */
    NSLineBreakByCharWrapping,      /* Wrap at character boundaries */
    NSLineBreakByClipping,          /* Simply clip */
    NSLineBreakByTruncatingHead,    /* Truncate at head of line: "...wxyz" */
    NSLineBreakByTruncatingTail,    /* Truncate at tail of line: "abcd..." */
    NSLineBreakByTruncatingMiddle   /* Truncate middle of line:  "ab...yz" */
} NS_ENUM_AVAILABLE_IOS(6_0);
この表のように置き換えればOKです。

内容 UILineBreakMode
(iOS5まで)
NSLineBreakMode
(iOS6から)
単語で
折り返し
UILineBreakModeWordWrap NSLineBreakByWordWrapping
文字で
折り返し
UILineBreakModeCharacterWrap NSLineBreakByCharWrapping
文字で
折り返し
UILineBreakModeClip NSLineBreakByClipping
前方省略(...wxyz) UILineBreakModeHeadTruncation NSLineBreakByTruncatingHead
後方省略(abcd...) UILineBreakModeTailTruncation NSLineBreakByTruncatingTail
中央省略(ab...yz) UILineBreakModeMiddleTruncation NSLineBreakByTruncatingMiddle


どーしよー。
これでもう忘れないはず!