プログラミング雑記

プログラミングの雑記です。

iOS

回転に関してメソッドが呼ばれる順序

iOS6以上の話 UIViewControllerをモーダル loadView viewDidLoad supportedInterfaceOrientations viewWillAppear supportedInterfaceOrientations viewDidAppear UINavigationControllerをモーダル [UINavigationController shouldAutorotate] [UINavigatio…

OSバージョン判定

iOS

よく忘れるのでメモ floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1

いつリファクタリングするか

Don Robertによるガイドライン (一度目)似たような作業が発生した。ー>そのまま作業する。 (二度目)似たような作業が発生した。ー>そのまま作業する。 (三度目)似たような作業が発生した。ー>リファクタリングをする。

UITableViewCellにオリジナルのハイライト色を設定する方法。

iOS

よく使うのでメモ。 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { ~~~Cell Customize Part~~~ UIView *backgroundView = [[UIView alloc] init] ; backgroundView.backgroundColor = [UIColo…

UIColorをUIImageにする関数

iOS

よく使うのでメモ + (UIImage *)imageFromUIColor:(UIColor *)color { CGRect rect = CGRectMake(0, 0, 1, 1); UIGraphicsBeginImageContext(rect.size); CGContextRef contextRef = UIGraphicsGetCurrentContext(); CGContextSetFillColorWithColor(context…

レイヤーマスクをかぶせる_その3

これを こうすると UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(10, 10, 100, 100) //線を引く矩形 byRoundingCorners:UIRectCornerAllCorners //丸くするコーナーの位置 cornerRadii:CGSizeMake(10, 10)]; //丸くする大…

レイヤーマスクをかぶせる_その2

これを こうすると UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(10, 10, 100, 100) //線を引く矩形 byRoundingCorners:UIRectCornerAllCorners //丸くするコーナーの位置 cornerRadii:CGSizeMake(10, 10)]; //丸くする大…

レイヤーマスクをかぶせる

これを こうすると UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, 100, 100) //線を引く矩形 byRoundingCorners:UIRectCornerAllCorners //丸くするコーナーの位置 cornerRadii:CGSizeMake(10, 10)]; //丸くする大き…

ひらがなからカタカナへ

iOS

NSStringの全角→半角変換 - iPhone開発日記iOS6.0SDKのCFStringTransform()がおかしい - Qiita [キータ]上記でいける。この方法を使って、すべてひらがな(かたかな)に変換してからソートすれば、ひらがなカタカナを無視して五十音順にできる。

ログ出力をファイルにリダイレクトする。

iOS

NSString *str = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0]; str = [str stringByAppendingString:@"/log"]; umask(022); freopen([str cStringUsingEncoding:NSUTF8StringEncoding], "a+",stderr);

cocoapodsで入れられる便利OSS

iOS

pod 'UIKitHelper','~> 0.0.3'pod 'UIKitCategoryAdditions','~> 0.0.1'pod 'BlocksKit','~> 1.8.2'pod 'UIViewDrawRectBlock','~> 0.0.1'pod 'UIView+Helpers','~> 1.2.0'pod 'UIView+FrameAdditions','~> 0.0.1'pod 'RHAdditions','~> 1.0.0'pod 'UIDevice…

ブロック関数の復習

ブロック関数の例。//^のあとの引数の型を省略した場合は、returnした値の型となる //以下はblk変数として定義したブロック変数。 //NSNumber型の値を受け取り、NSString型の値を返却する例。 NSString* (^blk)(NSNumber *) = ^NSString* (NSNumber *count) …

プロジェクト設定

KIF.xcodeprojをworkspaceに追加 TargetをDuplicateでコピーする(iphoneのみでなくipadもサポートするならDuplicate and Transition to iPad そうでなければ Duplicate Only)。 "Build Settings"の"Product Name"でプロダクトネームを変更 "Build Phases"…

キー値監視コーディングの使用方法

https://developer.apple.com/jp/devcenter/ios/library/documentation/KeyValueObserving.pdfを参考。 オブザーバー(監視者)をターゲット(監視対象)に対して設定。 インスタンス間の設定となる事に注意。 /*登録*/ KVOTargetSample *target = [[KVOTarg…

NSOperationの使用方法

https://developer.apple.com/jp/devcenter/ios/library/documentation/ConcurrencyProgrammingGuide.pdfを参考。[NSInvocationOperation] NSInvocationOperation* ope1 = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(myTaskMet…

iOS用のテスティングフレームワークKIFの使用方法

参考square/KIF · GitHubまずは、必要なフレームワークをインストール。 cd /path/to/MyApplicationSource mkdir Frameworks git submodule add https://github.com/square/KIF.git Frameworks/KIF上記の /path/to/MyApplicationSourceは、具体的には、プロ…

StatusBar(ステータスバー)の色をカスタマイズする。

iOS6.0からステータスバーの色をカスタマイズできる。 現在iPhoneやiPodのみが可能なようで、iPadではできなかった。(もしかしたらできる?)方法は、以下。1、 Xcodeでプロジェクト設定を見ると、ターゲットのSummaryの欄に「Status Bar」というStatusBar…

OpenGLを使用する。[書籍]

Amazon.co.jp: iPhone 3Dプログラミング ―OpenGL ESによるアプリケーション開発: Philip Rideout, 安藤 幸央, 阿部 和也, 武舎 広幸: 本

OpenGLを使用する。[iOS準備編]

GLViewを作成するテンプレート。 //ヘッダ #import <UIKit/UIKit.h> #import <OpenGLES/EAGL.h> #import <QuartzCore/QuartzCore.h> #import <OpenGLES/ES1/gl.h> #import <OpenGLES/ES1/glext.h> @interface GLView : UIView { EAGLContext* m_context; } - (void) drawView; @end //ソース @implementation GLView - (id)initWithFrame:(CGR…</opengles/es1/glext.h></opengles/es1/gl.h></quartzcore/quartzcore.h></opengles/eagl.h></uikit/uikit.h>

Nibファイルから画面生成

iOS

近所で困っている人がいたので代わりにまとめ。 複数のNibファイルから1画面を生成する。 [XCODE] Nibファイルを複数使って一つの画面を作成する - YoheiM .NET 単体のNibファイルから1画面を生成する。 Cocoaの日々: [iOS] UINib を使ったカスタム UITabl…

iOSで比較的手軽に横スクロールをサポートする方法。

iOS

UITableViewを回転させる。 UITableViewを回転させるという方法。 参考・・・ UITableView を回転させて横スクロールさせる方法 | Cocoaの日々情報局 UITableViewを回転して横スクロールする際のタッチのエラーと対策方法 | Zero4Racer PRO Developer's Blog…

UILabelのテキスト自動調整は、numberOfLineが1の時しか使えない件

iOS

Second Flush:UILabelクラス

iOSのViewタッチ無効化について

親のビューのタッチを無効にすると、子のビューは全てタッチが無効になる。 親の親のビューのタッチを無効にして画面をタッチすると、 カレントのビュー:親のビュー:親の親のビューを通り越して 親の親の親のビューが反応する。

iOSでARCを使わないメモリ管理

プロパティ解放の記述方法についての提案 - iPhoneアプリ開発まっしぐら★ - iPhoneアプリ開発グループ 前記事の補足:プロパティへのnil代入がreleaseの代わりになる理由 - iPhoneアプリ開発まっしぐら★ - iPhoneアプリ開発グループ

iOSでの加速度等の取得

加速度等の取得にはCore Motion APIを使用する。 UIAccelerometeやUIAccelerationは将来的にdeprecatedになる。加速度センサとジャイロで体の動きを感じるアプリを作る(2/3)- @IT

iAdの設置方法

iAdの設置方法 その1:iAdを設置してみよう! その1|サルにもできるiPhoneアプリの作り方 その2:iAdを設置してみよう! その2|サルにもできるiPhoneアプリの作り方

画面回転のサポートをしていないと、rejectされる?

iAdのテストチェックリストに回転をサポートしているかという項目があった。OpenGL iPhoneアプリで回転対応を無視したが、審査は普通に通った。

DOM以外のXML解析方法

@IT:XMLプログラミングのためのAPIXML解析は ・DOM(Document Object Model・・・ツリー型)・・・大きな構造変更がしやすい ・SAX(Simple API for XML・・・イベント型)・・・省メモリ の2種類の方式がデファクトスタンダードiOS 4のSDKで、Twitterを使…

iOS画面遷移の参考

Viewの切り替えあれこれ - mocha-coffeeの日記

iOSアプリを複数台のmacで開発するときの注意点

複数のMacで開発する際の証明書:iPhoneアプリ開発雑記帳 複数のMacでiPhone(iOS)アプリの開発を行うときの注意点 | 画像変換の知恵袋