2011-12-21 4 views
0

私はこれまで、このようなものが発生しました。ここでは、ボタンはその一部のビューでタッチに反応します。私は透明な領域がより高いzレベルにあり、オーバーラップが発生したタッチを不明瞭にする画像ビューを発見しました。これは、不明瞭なビューが追加される前に、サブビューとしてボタンが追加されたためです。iPhoneのアクションシートキャンセルボタンのみタッチセンターに近づく

アクションシートの場合、私はそれが他の何よりも高いzレベルにあると思っていました。アクションシートはちょうど初期化されて表示されているので、何かがボタンを覆っていることがわかる方法はありません。

(私はちょうど普遍的なアプリケーションにアプリを変換し、iOS 4.3と5.0の両方でテストしています)iPadのアクションシートにキャンセルボタンはありません。 iOS 4.3と5.0の両方で)

問題の原因となるその他のアイデアを探しています。これは、サブクラス化アクションシート用ですので、ここで

UPDATE は、アクションシート

- (void) shareButtonPressed { 

    SHKItem *item = [SHKItem larkspreeSearchResult:searchResult]; 
    item.image = eventImageRaw; 

    // Get the ShareKit action sheet 
SHKActionSheet *actionSheet = [SHKActionSheet actionSheetForItem:item]; 

    // Display the action sheet 
    [actionSheet showInView:self.view]; 

} 

を表示するためのコードで、これは、右ShareKitの外にも、役に立つかもしれません。

+ (SHKActionSheet *)actionSheetForType:(SHKShareType)type 
{ 
SHKActionSheet *as = [[SHKActionSheet alloc] initWithTitle:SHKLocalizedString(@"Share") 
                 delegate:self 
             cancelButtonTitle:nil 
            destructiveButtonTitle:nil 
             otherButtonTitles:nil]; 
as.item = [[[SHKItem alloc] init] autorelease]; 
as.item.shareType = type; 

as.sharers = [NSMutableArray arrayWithCapacity:0]; 
NSArray *favoriteSharers = [SHK favoriteSharersForType:type]; 

// Add buttons for each favorite sharer 
id class; 
for(NSString *sharerId in favoriteSharers) 
{ 
    class = NSClassFromString(sharerId); 
    if ([class canShare]) 
    { 
     [as addButtonWithTitle: [class sharerTitle] ]; 
     [as.sharers addObject:sharerId]; 
    } 
} 

// Add More button 
[as addButtonWithTitle:SHKLocalizedString(@"More...")]; 

// Add Cancel button 
[as addButtonWithTitle:SHKLocalizedString(@"Cancel")]; 
as.cancelButtonIndex = as.numberOfButtons -1; 

return [as autorelease]; 
} 

showInViewメソッドはオーバーライドされていません。

+0

問題のビューコントローラからコードを貼り付けてください。具体的には '-showInView:'をアクションシートに送ります。 –

+0

いくつかのコードを更新しました。もっと助けがあれば教えてください。 – Jim

+0

ある種のボトムバーがありますか?このビューコントローラがツールバーの設定や 'UITabBarController'を持つ' UINavigationController'の一部である場合、アクションシートは親コントローラのビューに表示する必要があります。たとえば、 '[actionSheet showInView:self.navigationController.view];'または '[actionSheet showInView:self.tabBarController.view];'などです。 –

答えて

2

このビューコントローラがUINavigationControllerのツールバー構成またはUITabBarControllerの一部である場合、アクションシートは親コントローラのビューに表示する必要があります。たとえば、[actionSheet showInView:self.navigationController.view];または[actionSheet showInView:self.tabBarController.view];です。

+0

これは私のために働いた、ありがとう。 – c0d3Junk13

関連する問題