まゆたまガジェット開発逆引き辞典

電子工作やプログラミングのHowtoを逆引き形式で掲載しています。作りたいモノを決めて学んでいくスタイル。プログラマではないので、コードの汚さはお許しを。参照していないものに関しては、コピペ改変まったく問いません

iPhone開発記事

配列をフィルタリングする

配列を検索して、特定の文字列を含むもののみ取り出す方法です。 以下の配列の中から「魔女」を含むもののみ取り出します。 NSArrayのcontainsObjectでは含まれているかいないかの判断だけでしたが、これで取り出すことができます。 //配列 NSArray *ar = [N…

数秒後に特定の処理を実行する

特定の機能を数秒後に実行する等の処理で使えますね。 //1秒後にhogeを実行 [self performSelector:@selector(hoge) withObject:nil afterDelay:1];

カスタムセルにボタンを追加して処理を行う

例えばセルに表示させたツイートにFavボタンをつけたいなど、カスタムセルにボタンを追加したい場合の処理です。 カスタムセルの作り方はこれをベースにして、追加させるところのみ書きました。まず、ボタンを設置してTagを設定します。ここでは7にしてあり…

UILabelを大量に作る

UIImageを大量に作るにはここを改良してファイル名生成のところをfor文で回してあげれば良いのですが、UILabelはちょっとめんどうです。 UILabelを配列の数だけ生成し、位置と角度をランダムにしてみました。※Labelを破棄する場合の処理を追加しました。 以…

Objective-CでYahooテキスト解析APIのキーワード抽出を使う

結果がXMLで出て来るので、それをどう文字列なり配列にするかがキモですね。 didEndElementで出力結果をどう表示させるか設定する場面でミスると、出力結果を最終的に処理する部分で苦労することになるので、そこだけ注意です。流れとしては、 1.ここの「作…

元の文を入れ替えて違う文にする

またテキストネタです。Objective-Cでマルコフ連鎖をやろうと思ったんですが、どうも上手くいかなったので似た感じで「元の文を入れ替えて違う文にする」のをやってみました。 流れとしてはこんな感じ。たぶんコードがめちゃくちゃだと思うので、だめだこり…

連番ファイルを読み込んで表示

パラパラアニメなどで連番ファイルを読み込んだり、ファイル名に変数を使いたい場合のファイル指定の方法です。ド基本かもですが、個人的にObjective-Cでは初めてだったので(oFではあったけど)。まず3つのPNGファイルを用意しておきます。ファイル名は1Butte…

iOS6でTwitterのタイムラインを取得

iOS6からTwitter.frameworkが使えなくなりました(動くけど警告が出る)。 Social.frameworkとやらを使えということらしいです。 タイムラインの読み込みに関してはこちらが詳しいです。 テキストだけ取り出したい場合は、・.h #import <UIKit/UIKit.h> #import <Social/Social.h> #import <Accounts/Accounts.h> @in</accounts/accounts.h></social/social.h></uikit/uikit.h>…

文字列を大量の条件で置換する

またまた文字列ネタです。 ここで条件を列挙して文字列を置換することをやりましたが、それを一気にやる方法を作りました。 plistを使います。 まず手順。1.プロジェクト名が書いてあるファイルを右クリックしてNew Fileを選び、iOS→Resource→Property List…

複数の条件で文字を置換する

複数の条件で文字を置換するのにだいぶ手間取ってしまった・・・まさか列挙するだけで良いとは知りませんでした。正規表現使うのかと思ってた。 ただこの場合、数が多いとやっかいですね。まとめて書く方法は何かないものかしら・・・ルール:左が置換前、右…

フェードイン/アウト、上下運動のアニメーション

以前、タイマーを使ってアニメーションさせる方法を書きましたが、フェード以外は動きがなぜかカクカクになるという事態が発生したため別の方法を取ることにしました。以下がフェードイン/アウトです。 - (void)viewDidLoad { [super viewDidLoad]; // Do an…

テキストを単語に分けて、いちばん長い単語を抽出

形態素解析といえばいろいろありますが、Objective-Cのみでもできると知ってびっくり。 ここを参考にしました。ありがとうございます!で、whileで出て来る結果を配列に格納していちばん長い単語を取り出してみました。変更個所だけ書くとヤヤコシイので、変…

Twitter検索してラベルに表示

Twitter検索して出てきた新しいツイート3件をラベルに表示します。 テーブルじゃなくてもできるってことで。TextFieldに違う文字列を入力してもちゃんと更新されます。 これもまたサンプルは後日。先にTextFieldとLabelを用意して、AccountsFrameworksとTwit…

Twitter検索してヒット数を表示(ただし取得したタイムライン内の数)

次はまたまた正規表現を使ってTwitterSearchAPIを使ったTwitter検索をして、ヒット数を出してみました。ただしこのヒット数はTwitter全体のヒット数ではなく、取得したタイムラインの中にいくつあったかというカウントです。 今回はRTされた数を出してみまし…

文字列をOR検索してヒット数を出す

また正規表現です。 今度はOR検索してヒット数を出してみました。 NSArray *ar = [NSArray arrayWithObjects:@"いち",@"いちご",@"いちごあめ",@"ガリガリ君",nil]; NSString *str = [ar componentsJoinedByString:@","]; NSError *error = nil; NSRegularEx…

辞書の値をもとにソートする

キーをもとにソートする記事はけっこうありましたが、値でソートするものが見当たらなかったのでポストです。 間違ってるというか力技な気がしてならないですが・・・辞書のデータ: ・キー:Number・値:1とキー:Name・値:Aのセット ・キー:Number・値:3とキー…

文字列を複数の条件で検索し、置き換える

正規表現を使えばいいと気づいたのは後になってからでした。 「あなた、愛しているんだ」の文字列で、愛しているんだorそうだっけ?のいずれかがあった場合、「愛しているんだ」もしくは「そうだっけ?」の部分を「恋している」に書き換えたい場合、ここが参考…

文字列の中で最も長いものを取り出す

いくつか文字列があって、その中で最も長いものを取り出したい場合のやり方です。文字列を配列に格納してsortedArrayUsingDescriptorsを使って長い順に並べていちばん最初のリストを取り出しています。 - (void)viewDidLoad { [super viewDidLoad]; // Do an…

StoryboardでなんちゃってTabbarを作る

※この方法、UIButtonなどのアクション系つけると動作が怪しくなることが分かりました。消すべきかもですが、一応残しておきました。通常Tabbarは黒のグラデーションになってますが、ここに画像を設置する方法はやや面倒ですが方法があります(日本語でググっ…

カスタムセルでUILabelの文字数に合わせてセルの高さを変える

TableViewでカスタムセルを使ったときに、UILabelの文字数に合わせてセルの高さを変えるという処理をしたときにハマったのでメモ。基本的にはこれ9/16修正しました:iOS5のTwitter.frameworkを使ってつぶやきをカスタムテーブルで表示する - ガジェット充まゆ…

Twitterトレンドをアクションシートに表示する

疲れた。2バイト言語にこれほど苦しめられるとは・・・ 今回はTwitterのトレンドを表示してみました。 サンプルはこちら。JSONを分析したらSearchAPIのときと構成が変わらなかったのでよゆーよゆーと思ってたら詰みましたorz ワールドワイド(英語)のトレンド…

追記あり:表示されてるツイートを「お気に入り」にポストする

Twitter第3段。キーワードを入力してその言葉でTwitter検索をかけて1件ずつ該当ツイートを表示、さらに表示されているツイートをふぁぼります。※ツイートを50件取得できるようにしました。限界は100件だそうです。 「"http://search.twitter.com/search.json…

追記あり:Twitterの特定ワードの検索ヒット数を表示する

※すみません、ViewController.hと.m訂正しました(5/15) ※ツイートが次の表示に切り替わるときにフェードイン/アウトするような機能を追加しました。解説の最後に書いています ※ツイートを50件取得できるようにしました。限界は100件だそうです。TwitterのSea…

9/16修正しました:iOS5のTwitter.frameworkを使ってつぶやきをカスタムテーブルで表示する

以前ここにメモした「入力したテキストをTwitterで検索して結果をカスタムテーブルで表示」では json-frameworkという外部ファイルをダウンロードして組み込まなければいけませんでした。 今回はそれを使うのではなく、iOS5から標準で追加されたTwitter.fram…

Tabbarでアプリ初回起動時にヘルプ画面(ImageView)を表示

アプリを初めて起動させたときに操作方法などヘルプ画面を表示させたいときがあると思います。そんなとき使うのがNSUserDefaults。 NSUserDefaultsと言えば、本来は一時的にデータを保存して次回起動させたときにロードするというやり方が一般的です。 が、…

TextFieldにテキストを入力したとき画面の下が隠れてしまわないようにする方法

TextFieldにテキストを入力するとき、キーボードが下からせりあがってきて画面が隠れてしまうことがあります。 かといってTextFieldを画面上部に持っていくとなるとレイアウトが崩れる・・・というときにはscrollViewを使います。 テキストを入力したときに…

入力したテキストをTwitterで検索して結果をカスタムテーブルで表示

今回はカスタムテーブルの作り方についてまとめました。 取得したTweetの整形の仕方がイマイチ分かっていなかったので、「10日で覚えるiPhoneアプリ開発入門教室」を参考にしています。Table View Contorollerを使わないテーブルの作り方になります。 Table …

TabbarでNotificationを使ってデータ送信&-(void)を実行

TabbarでTab1のボタンを押すとTab2に書かれている-(void)〜が実行される。 オブジェクト指向で言う「委譲」ってやつですが、多くはDelegateを使うことが多いと思います。 が、ことStoryboardやTabbarなどを使っているとやりにくいことも。 そこで離れたView…

iOS5でTextFieldからツイートする

iOS5からOSレベルでTwitterとの連携が可能になり、Twitter.frameworkというフレームワークを使えばツイートするのがずいぶん楽になりましたね。最初はわざわざ設定画面に行った後アプリを立ち上げ直してもらうという苦労が微妙にひっかかっていて、OAuth認証…

追記分:Storyboard+TabBarでボタンを押してデータを送信

更にStoryboard+Tabbarでボタンを押して次のタブへデータを送るコード書きました。 コードのダウンロードは以下です。 GitHub - prince9/SBTabDataSend: Sent data to the next Tab using Storyboard.TabBarでStoryboardを使ってデータの受け渡しをしますタ…