読者です 読者をやめる 読者になる 読者になる

なかじまの開発ブログ

アプリ開発における備忘録などなど。

MENU

UIScrollViewに追加されたボタンが反応しないときにすること【Objective-C】

UIScrollViewのdelaysContentTouchesをNOにするとボタンが反応するようになります。 scrollview.delaysContentTouches = NO; こちらもどうぞ nsdevelop.hatenablog.com

UITableViewのスクロールをボタンで制御する【Objective-C】

Objective-Cが終わりつつあると感じているなかじまです(´・ω・`)今回はUITableViewのスクロールをUIButtonで制御しつつ、セルの表示に合わせてボタンの表示非表示も一緒にメモします!storyboardのUIViewにUITableViewとUIButtonを2つ設置します。設置したU…

画面起動時にTextFieldを選択された状態にする【Objective-C】

Outlet接続などでUITextFieldを用意。『.h』 @property (weak, nonatomic) IBOutlet UITextField *textField; 起動時に実行されるメソッド内に下記を入力 // textFieldを選択状態にする [textField becomeFirstResponder]; 『.m』 @synthesize textField; //…

指定した秒数後にメソッドを実行する【Objective-C】

3秒遅らせてメソッドを実行させたい場合、次のようにします。 - (void)ahan { NSLog("あ"); } - (void)viewDidLoad { [super viewDidLoad]; // 3秒後にahanメソッドを実行 [self performSelector:@selector(ahan) withObject:nil afterDelay:3.0]; } これだ…

1つの配列のソートに合わせて、もう1つの配列の順番も変える【Objective-C】

2つの配列を用意。 NSArray *array1 = [NSArray arrayWithObjects:@"さしすせそ", @"かきくけこ", @"あいうえお", @"なにぬねの", @"たちつてと", nil]; NSArray *array2 = [NSArray arrayWithObjects:@"3行目", @"2行目", @"1行目", @"5行目", @"4行目", n…

DropBox Core APIを使おう【Objective-C】

データを同期するのに使えます! アプリの登録 下記URLからサインインをしてください。 Dropbox - Sign in『My Apps』の『Create app』から登録します。1.Choose an API Dropbox APIを選択します。2.Choose the type of accsess you need 全てのアクセスを許…

UITabBarでUIViewControllerを切り替える【Objective-C】

準備 ViewControllerの表示したい場所にUITabBarを設置してください。設置したUITabBarは『ViewController.h』にOutlet接続(名前:tabBar)してください。 そしてTabBarのアイテムと同じ数のViewControllerをInterfaceBuilderに設置してください。そして各View…

UDP通信で送信、受信、タイムアウト処理【Objective-C】

#import <sys/socket.h> #import <netinet/in.h> #import <arpa/inet.h> #import <sys/types.h> bool readflag; // 受信したかどうか 初期値はfalseを代入しておく 送信 // 送信 - (void)dataSend:(NSString *)text { char *cstr = (char *)[text UTF8String]; // 送信したいテキストをchar型に変換 // ソケットの作</sys/types.h></arpa/inet.h></netinet/in.h></sys/socket.h>…

音楽の再生、一時停止、停止【Objective-C】

AVFoundationをインポート #import <AVFoundation/AVFoundation.h> 音楽の読み込み NSURL *apUrl = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"ファイル名" ofType@"拡張子(mp3など)"]]; AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc] initWithContentsO</avfoundation/avfoundation.h>…

オリジナルのフォントを使うときにすること【Objective-C】

①好きなフォントをダウンロードし、PCにインストールする。②フォントファイルをプロジェクト内に入れる。③プロジェクトのTARGETS→Info→Custom iOS Target Propertiesに『Fonts provided by application』を追加する。④Itemに追加した『フォント名.拡張子』を…

transformを使って色々アニメーションまとめ【Objective-C】

CGAffineTransformを使ってアニメーション(移動・回転・拡大縮小)しよう! 移動 // 現在の位置からX軸に100, Y軸に200移動 view.transform = CGAffineTransformMakeTranslation(100, 200); // Affine変換された後の位置からX軸に100, Y軸に200移動 view.tr…

UINavigationControllerの画面遷移でModalのようなアニメーションに変更する

前回の記事をちょこっと修正、追加。 - (IBAction)nextBtnTap:(id)sender { CATransition *transition = [CATransition animation]; transition.duration = 0.3; transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFuncti…

UINavigationControllerを使って、画面遷移をする【Objective-C】

最近 UINavigationController の便利さに気づきました。いっぱい画面遷移するアプリだと、UINavigationControllerを使うのがいいと思います。最初からある ViewController に実装する体で進めます。 では InterfaceBuilder に NavigationController を設置し…

ゲームの会話みたいにUITextViewに1つ1つ文字を表示する【Objective-C】

昔にどっかのサイトで見たコードを参考にして作りました。(サイト忘れた) タッチしたら文字が1つ1つ表示されて、表示中にもう一度タッチすると文章が全部表示されます。 適当にInterface BuilderにUITextViewを設置しまして、Outlet接続(名前:textView…

NSMutableArray - NSUserDefaults保存・読み込み・削除・削除確認【Objective-C】

NSMutableArray *marray = [NSMutableArray array]; 保存 NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; [marray addObject:@"a"]; NSData *marrayData = [NSKeyedArchiver archivedDataWithRootObject:marray]; [defaults setObject:…

指定した月の日数を取得【Objective-C】

// 指定した月が何日あるかを取得する - (int)getdays:(NSInteger)year month:(NSInteger)month { NSDateComponents *comps = [[NSDateComponents alloc] init]; [comps setYear:year]; [comps setMonth:month]; NSCalendar *calendar = [NSCalendar current…

現在の時刻を取得する【Objective-C】

- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event { NSUInteger units = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond; NSDateComponents *comps </uitouch>…

NSStringを結合【Objective-C】

NSString *text1 = @"あいうえお"; NSString *text2 = @"かきくけこ"; NSString *text3 = [text1 stringByAppendingString:text2]; // 結合 NSLog(@"%@", text3);

iPhoneの音量ボタンの押下イベントを検出【Objective-C】

こちらに素晴らしいサイトがありました。frnk.hatenablog.jpしかし、deprecatedが多いためiOS7.0以降でも動くようにした記事を残します。こちらも参考にしました。 【iOS】【MPVolumeView】スライダー移動で音量を変更したときにシステムの音量表示のオーバ…

UITableViewをスクロールした際に、内容がかぶってしまうを解決【Objective-C】

参考サイト UITableViewのチェックマークがスクロールすると消えてしまう(15498)|teratail スクロールをして見えなくなったセルは、再利用のために情報がなくなってしまうようですね。なので、セル別に情報を保存することによって解決するようです。 カスタ…

UITableViewにオリジナルのセルを表示する【Objective-C】

Interface BuilderにUITableViewとセル追加用のUIButtonを設置。ViewController.hにUITableViewをOutlet接続(名前:_tableView)し、UIButtonはAction接続(名前:addBtnTap)してください。 次にオリジナルのセルを作る準備。CustomTableViewCellという名…

UIImageをパラパラマンガのようにアニメーションさせる【Objective-C】

UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(100, 100, 32, 32)]; [self.view addSubview:imageView]; NSMutableArray *imageArray = [NSMutableArray array]; [imageArray addObject:[UIImage imageNamed:@"image1.png"]]; [i…

NSStringをchar*に変換【Objective-C】

メモメモ。 NSString *str = @"1234"; char *cr = (char *)[str UTF8String];

【Twitter】スコアなどのつぶやきにスクショを付ける【Objective-C】

『Social.framework』をXcodeに追加してください。 #import <Social/Social.h> #import <CoreGraphics/CoreGraphics.h> #import <QuartzCore/QuartzCore.h> ツイートボタンの押下処理部分に下記を記述 // スクショを撮る UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, NO, 0.0f); CGContextRef context = UIGraphic</quartzcore/quartzcore.h></coregraphics/coregraphics.h></social/social.h>…

背景のスクロールをずらして奥行を作る【Objective-C】

タイトルが思いつきませんでした。前回のつづきみたいなものです。前回→UIScrollViewの移動量を取得【Objective-C】 - なかじまブログ 前回設置したUIScrollViewの下に、同じ大きさのUIScrollViewを設置。 そしてViewController.hにOutlet接続をします(名前…

UIScrollViewの移動量を取得【Objective-C】

Interface BuilderにUIScrollViewを設置。設置したUIScrollViewをViewController.hにOutlet接続(名前:scrollView)。 『ViewController.h』 @interface ViewController : UIViewController { float offsetX, offsetY; // UIScrollViewの初期オフセット flo…

NSString型の文字列を値に変換する【Objective-C】

今回は、よく使うint型に変換する方法だけ。(後々追加していくかも) NSString *text = @"12345"; int i = [text intValue]; // または、『text.intValue』 NSLog(@"%d", i); TextFieldに数字を入力して、その値を使いたいときに使えますね。

UIButtonのフォントを変更する【Objective-C】

メモメモ。 button.titleLabel.font = [UIFont fontWithName:@"" size:14]; titleLabel経由しなきゃなんですね。

複数のUIAlertViewのボタン押下処理を管理する【Objective-C】

『ViewController.h』 @interface ViewController : UIViewController <UIAlertViewDelegate> { UIAlertView *alertView1; UIAlertView *alertView2; } 『ViewController.m』 - (IBAction)Button1Tap:(id)sender { alertView1 = [[UIAlertView alloc] initWithTitle:nil message:@</uialertviewdelegate>…

スクリーンショットを取得し、表示する【Objective-C】

便利だなーと思ったのでメモ。Interface Builderに『撮影用のButton』と『スクリーンショット表示用のImageView』を設置。ImageViewはわかりやすく背景を灰色にしてます。 ModeはAspectFitにしました。次に、ViewController.hにUIButtonをAction接続(Shooti…

Interface Builderに設置したUIScrollViewがスクロールしてくれない時に確認すること【Objective-C】

設置したUIScrollViewのcontentSizeを、指定しているか確認しましょう。これを指定しないと、contentSizeのデフォルトサイズがUIScrollViewと同じサイズになるため、スクロールしてくれません。 scrollView.contentSize = CGSizeMake(スクロールさせたい横幅,…

Interface Builderでボタンなどの角を丸くする【Objective-C】

Xcodeの右側(ユーティリティエリア)のアイデンティティインスペクタのタブを開きます。『User Defined Runtime Attributes』の『+』を押します。 『Key Path』には layer.cornerRadius を記述。『Type』は Number を選択。『Value』には好きな数字を入れ…

当たり判定にCGRectIntersectsRectを使う【Objective-C】

CGRectIntersectsRect bool CGRectIntersectsRect(CGRect rect1, CGRect rect2); 実装 それぞれのCGRectが重なると、trueを返してくれます。便利ですね。 if (CGRectIntersectsRect(CGRectMake(X座標, Y座標, 横幅, 縦幅), CGRectMake(X座標, Y座標, 横幅, …

ボタンをタップしてUIScrollViewをページスクロールする【Objective-C】

スクロールしたい画像を用意しておき、Xcodeに追加しておきます。(今回は3枚用意しました)ではまず、ViewControllerにUIScrollViewとボタン2つを設置します。重なり方は画像の左側を参考にしてください。そして、設置したUIScrollViewの『Paging Enabled…

オリジナルのUIAlertViewを作る【Objective-C】

作業としては、UIViewControllerにxibを重ねてウィンドウのように表示させます。 UIViewControllerに表示させる用のボタンを設置してやりましょう。そして設置したボタンをViewController.hにAction接続してください。やり方はこちらを参考に↓ コードで画面…

NSUserDefaultsを使ってデータを永続保存する【Objective-C】

今回はint型のデータを保存 NSUserDefaultsを取得 NSUserDefaults *num = [NSUserDefaults standardUserDefaults]; 値を保存 [num setInteger:500 forKey:@"key_num"]; forKeyは適当に 値を取り出す int num2 = [num integerForKey:@"key_num"]; さっき設定…

アラートビューを表示【Objective-C】

メモ UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"タイトル" message:@"テキスト" delegate:self cancelButtonTitle:@"いいえ" otherButtonTitles:@"はい", nil]; [alertView show];

Bluetooth通信で値を送信する【Objective-C】

今回は、GKPeerPickerControllerを使いません。まず、GameKitフレームワークをプロジェクトに追加。 『ViewController.h』 #import <GameKit/GameKit.h> @interface ViewController : UIViewController <GKSessionDelegate> { GKSession *_session; int num; // 送りたい値 } 『ViewController.m』 </gksessiondelegate></gamekit/gamekit.h>…

コードで画面遷移をする【Objective-C】

StoryboardにView Controllerを追加します。次に新しく作ったViewController用のメソッドを作ります。わかりやすく名前をつけて、(今回名前は「SampleViewController」にします)新しく作ったViewControllerのClassに設定します。そして下にある「Storyboard…

addSubviewしたviewを最前面・最背面に移動させる【Objective-C】

案外使う時があるのでメモ。 『ViewController.m』 // 最前面にする [self.view bringSubviewToFront:view1]; // 最背面にする [self.view sendSubviewToBack:view2]; addSubviewした後に記述してやると、移動させることができます。 これで、ラベルでもボタ…

UIScrollViewをスクロールしている間タイマーが止まってしまうを解決【Objective-C】

UIScrollViewをスクロール、ピンチイン・ピンチアウトをしているときにタイマーは止まってしまう(無効になる)ようです。 // タイマー NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:0.01 target:self selector:@selector(onTick:) userInfo:n…

配列を他のメソッドでも共有して使う【Objective-C】

前に書いた記事で配列の共有がうまくいかなかったので違う方法を考えました。プロパティー変数で配列を使う【Objective-C】 - なかじまブログ 方法は『AppDelegate.m』に配列を宣言するだけ 『AppDelegate』 @interface AppDelegate : UIResponder <UIApplicationDelegate> { @publi</uiapplicationdelegate>…

画像の範囲内をタッチしたかどうか【Objective-C】

縦、横のサイズが32ピクセルの画像の場合『ヘッダーファイル』 int x, y; // 座標 UIImage Img; // 画像 『メソッドファイル』 /* 初期化 */ - (id)initWithCoder:(NSCoder *)aDecoder { self = [super initWithCoder:aDecoder]; if (self) { /* 画像読み…

現在のタッチ座標を取得する【Objective-C】

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { UITouch *touch = [touches anyObject]; CGPoint location = [touch locationInView:self]; NSLog("X座標:%f Y座標:%f", location.x, location.y); } 「touches anyObject」 どのViewが…

スライド入力で画像を移動させる【Objective-C】

まずは変数を用意『ヘッダーファイル』 CGPoint Player; // プレイヤーの座標 CGPoint playerPoint; // プレイヤーの座標を格納 CGPoint tsPoint; // タッチ開始座標 『メソッドファイル』 // タッチ処理 - (void)touchesBegan:(NSSet *)touches withEvent:(…

画面のサイズによってstoryboardを使い分ける【Objective-C】

①Main.storyboardのViewControllerのサイズは4inchに設定。 ②storyboardをもう一つ作り(ここでは名前はSub.storyboard)、ViewControllerを設置してサイズを3.5inchに設定。 ※新しく作ったstoryboardにViewControllerを設置したときは「Is Initial View Con…

プロパティー変数で配列を使う【Objective-C】

AppDelegateでプロパティー変数を配列で宣言するとエラーが起きたので調べました。参考サイト プロパティに二次元配列を使う | なべろぐポインタを使うといいそうです。『AppDelegate.h』 @property int *a; 『実装』 #import "AppDelegate"; AppDelegate *a…

ラベルの点滅永久アニメーション【Objective-C】

ヘッダファイルにメソッドを作成 - (void)fadeIn; // フェードイン - (void)fadeOut; // フェードアウト メソッドファイル - (void) viewDidLoad { [super viewDidLoad]; // フェードアウト [self fadeOut]; } - (void)fadeOut { [UIView animationWithDurat…