2012年5月6日日曜日

UITextViewの文字を編集できない様にするeditable(iphoneアプリの作り方)


UITextViewの文字を編集できない様にするは、editableを利用します。
editableは、(BOOL)を返します。

 YES:編集可
 NO:編集不可

(例)self.uitext.editable = NO;

iphoneアプリでリンクをつける方法(UIApplication sharedApplication)objective-c


iphoneアプリを作っていて、ボタンを押したら
他のWEBページに遷移するリンクを作りたいと思います!

HTMLなら、
<a href="http://〜"></a>で囲むだけでリンクになるのですが、
objective-cではそんな簡単にはいきません。。

まずは、リンクを張るためのボタンを作ります。
//-- カスタムボタンの設定 
self.os_btn1 = [[UIButton buttonWithType:UIButtonTypeCustom] retain];

//-- カスタムボタンのサイズと位置を指定します。
self.os_btn1.frame = CGRectMake(0.0, 20.0, 100.0, 60.0);

//-- カスタムボタンの画像を指定します。@""の中に、保存した画像の名前を入れましょう。
[self.os_btn1 setImage:[UIImage imageNamed:@"kenshou.gif"] forState:UIControlStateNormal];

//-- カスタムボタンが押されたときの画像を指定します。
[self.os_btn1 setImage:[UIImage imageNamed:@"kenshou.gif"] forState:UIControlStateHighlighted];

//ボタンの背景色を選択します。
self.os_btn1.backgroundColor = [UIColor whiteColor];

//ボタンが押された時のメソッドを指定します。
self.os_btn1.reversesTitleShadowWhenHighlighted = YES;
[self.os_btn1 addTarget:self action:@selector(btn1_1:) forControlEvents:UIControlEventTouchUpInside];



//ボタンが押された時のメソッド内に、リンク先を指定します。
-(void)btn1_1:(id)sender {
NSURL *url1 = [NSURL URLWithString:@"http://〜"];
[[UIApplication sharedApplication] openURL:url1];
}


ぜひ試してみて下さい!

UI segmented Controlの使い方(iphoneアプリ)objective-c


iphoneアプリのlibraryにもある「segmented Control」
ボタンを切り替えながらアクションを追加する方法をご紹介したいと思います。

















//ボタンを設置する方法はこんな感じです。最初はボタンの中に表示する文字を書きます。
self.arr = [NSArray arrayWithObjects:@"おすすめ", @"ランキング", nil];
self.seg = [[[UISegmentedControl alloc] initWithItems:arr] autorelease];


//ボタンのサイズを指定します。(上の余白、左の余白、横幅、高さ)の順番です。
self.seg.frame = CGRectMake(10, 10, 250, 30);

//ボタンのスタイルを設定します。
self.seg.segmentedControlStyle = UISegmentedControlStyleBar

//ボタンのどこが選択されているかを指定します。(今回は1番目を選択
self.seg.selectedSegmentIndex = 1

//値が変更された時にchangepageメソッドを呼び出す
[self.seg addTarget:self action:@selector(changepage:) forControlEvents:UIControlEventValueChanged];

//viewにボタンを追加します。
[self.view addSubview:self.seg];


次にメソッド内の書き方です。
今回は、ボタンを表示するごとに、指定したviewを切り替えることを
行いたいと思います。

-(void)changepage:(UISegmentedControl*)seg{
    // ここにボタンを押されたときにどんな処理を行うか記述する
    // 引数の seg には呼び出し元のUISegmentedControlオブジェクトが引き渡されてきます
if(self.seg.selectedSegmentIndex == 0){
self.uv.hidden = YES;
self.uv2.hidden = NO;
}
if(self.seg.selectedSegmentIndex == 1){
self.uv.hidden = NO;
self.uv2.hidden = YES;
}
}


viewの表示/非表示は、
uv.hidden = NO;
uv.hidden = YES;
で行えます。




‘Local Declaration of "●●" Hides Instance Variable’コンパイラ警告の回避方法

よく、コンパイラをすると、
‘Local Declaration of  "●●" Hides Instance Variable’というエラーが出る事がある。

直訳すると、ローカル変数の●●は、インスタンス変数を隠しています。

ローカル変数と、インスタンス変数は、
かぶらない様に、違う名前にしましょう◎


2012年5月3日木曜日

facebookアプリの191エラー、SSLサーバー設定、javascript SDKなどの解決法!

facebookアプリを作っていて、javascript SDKを使っているのだが、
情報が少なすぎたり、情報が古すぎたり、英語のサイトで全然読めなかったり、
かなり苦労していました。。


SSLが使えないといけないサーバーだったり、
全然知識のない私にはかなりの重労働でした。。
191エラーが出てしまったり、よくわからないことが多すぎる!!

いろいろ調べても分からなかったので、
詳しい方(松 ロドリゲス 翔)に、少し教えていただきました。

まずはサーバーにアップしているindex.htmlの中身。


■index.html
//最初にjavascript SDKを使うために、SDKをダウンロード??

<script>
window.onload = function(){
    var element = document.createElement('script');
    element.src = document.location.protocol + '//connect.facebook.net/ja_JP/all.js';
    document.getElementById('fb-root').appendChild(element);
}

//アプリを初期化します
window.fbAsyncInit = function(){
    FB.init({
        appId  : 'アップIDを登録',
        status : true,
        cookie : true,
        xfbml  : true,
        oauth  : true
    });

//ユーザーのログイン状態を調べます。
    FB.getLoginStatus(function(response) {
        if (response.status === 'connected') {

        //ログインできてる場合はここに処理を書きます。
            document.write('loginok');

        } else if (response.status === 'not_authorized') {
        //アプリに接続していない場合
            location.href = 'https://www.facebook.com/dialog/oauth?client_id=アップID&redirect_uri=https://apps.facebook.com/アップID/';

        } else {
        //ログインしていない場合
            document.write('ログインしてくださーい');
        }
    });
}
</script>

■facebook Developerの中身


ウェブサイト
サイトURL
https://apps.facebook.com/アップID/

Facebook上のアプリ
キャンパスURl
http://〜

セキュリティで保護されたキャンバスURL
https://〜


ウェブサイトのサイトURLを、
facebookのアプリのURLにしたら、
なんとかうまく動きました!!

明日こそ、ちゃんとアプリが動く様に頑張りますー!







2012年5月2日水曜日

IE6でborderが消えてしまうバグの対処方法

IE6以下のバージョンでは、子要素でfloatを使用すると、
親要素のborderが消えてしまうというバグがあります。

IE6はもうかなり古いブラウザですが、そうは言っても
まだまだ多くのユーザーがいることも確かです。

そんなバグの対策には、
親要素に横幅を指定してあげることで対策することが出来ます!

---
width:****px;
---


また、IE6にだけ幅指定を効かせたい場合は、
CSSの最初に「_」を付けることで、IE6にのみCSSを効かせることが出来ます。



---
_width:****px;
---

ぜひお試し下さい!

2012年5月1日火曜日

facebookアプリ(アプリをページタブに追加する方法)アプリの承認について

Facebook IDなどを使用する場合は、すべてアプリの利用者によるあなたのアプリの承認が必要です。
ユーザーの承認がないと、アプリの中でユーザーの名前などの情報を取得することが出来ません。

承認を行うためには、 Facebookアプリ用のOAuthダイアログをしようすることになります。
以下のURLをクリックし、OAuthダイアログを呼び出してください。


---
https://www.facebook.com/dialog/oauth? client_id=YOUR_APP_ID&redirect_uri=YOUR_CANVAS_PAGE

---

太字の
YOUR_APP_IDと、YOUR_CANVAS_PAGE
はそれぞれ任意のものに置き換えてください。

YOUR_APP_ID:facebook app ID
YOUR_CANVAS_PAGE:キャンバスページのURL(http://~)


ユーザーが許可をするをクリックしたら、アプリが承認され、
OAuthダイアログはブラウザーをredirect_uriパラメーターで渡されていたURLへリダイレクト
(HTTPステータスコード302)します。

アプリが承認されたら、それに続くリクエストからsigned_requestパラメーターには次の情報が設定されます。