2011-07-27 5 views
2

NSMutableArrayのNSDictionaryからNSStringsを取得するにはこのコードがありますが、問題は正しく表示されないということです。ここで コードは次のとおりです。問題は、私の場合であるアクションシートが正しく表示されない

UIActionSheet *playingSheet = [[UIActionSheet alloc] initWithTitle:@"Hi" delegate:self cancelButtonTitle:nil destructiveButtonTitle:nil otherButtonTitles:nil]; 
    for(NSDictionary *dict in accounts) { 
     NSString *name = [dict objectForKey:@"Name"]; 
     [playingSheet addButtonWithTitle:name]; 
    } 
    [playingSheet showInView:self.view]; 
    [playingSheet release]; 

、self.viewはparentViewのサブビューで、XIBからロードされ、全画面表示ではありません。だから問題は私のアクションシートがiPhoneの画面の幅の半分のようで、スクリーンの底に触れていないということです。 私の場合、どのようにしてそれを修正して、ユーザーが正しく見ることができるように、一番上のビューと、通常のactionSheetが見えるようにするのでしょうか?

ありがとうございます!

編集:これは修正した:

[playingSheet showInView:[UIApplication sharedApplication].keyWindow]; 

答えて

3

は、画面上の正しい位置にそれを置くために上向き/下向きアクションシートをシフトしなければならないことにより、高さ。試行錯誤でこれを変更することができます。たとえば、self.viewが画面の下半分にある場合、「theHeightYouWant」は負の値になります。

+0

ボタンの数が毎回変わる場合、アクションシートの高さをどのように設定するかわかりません。 –

+1

修正されました: [playingSheet showInView:[UIApplication sharedApplication] .keyWindow]; –

+0

いいです...私はこの方法を知らなかった!とにかく、ボタンの数によって "yourDesiredHeight"を変えることができます。各ボタンは "yourDesiredHeight"に特定の量を追加します。 "theHeightYouWant"と同様に – tipycalFlow

2

あなたのコードが設定されている方法によっては、あなたがself.parentViewController.viewself.view.windowself.view.superview、または物事の様々なを使用して試みることができます。より詳細な回答が必要な場合は、詳細情報を提供する必要があります。あなたは

[playingSheet setFrame:CGRectMake(0, theHeightYouWant, 320, yourDesiredHeight)]; 

として「theHeightYouWantを」アクションシートの枠を設定する必要が

+0

3人で働いた人はいません。このエラーはコンソール(SIGABRT)にスローされます:***キャッチされていない例外 'NSInternalInconsistencyException'のためアプリを終了します、理由: '無効なパラメータが満たされません:view!= nil' 他に何を試してください。 *** –

+0

あなたのアプリがどのように設定されているかわからないので、わかりません。 – jtbandes

関連する問題