0

aUIPopoverControllerを示す aUIToolbarUICollectionViewController、多数のセルを含む a があります。私が見ている問題は、コレクション ビューがツールバーの下に表示されることです。

コレクションビューコントローラーを(原点を変更して)ツールバーの下に移動しようとしましたが、役に立ちませんでした。

スクリーンショットでは、ツールバーを半透明にして、意味がわかるようにしています。

ここに画像の説明を入力

iOS 6 SDK を使用しています。

ポップオーバーを構成する要素は単純明快です。カスタムクラスでUICollectionViewController作成するカスタムがあります。そのカスタムクラスのコードは次のとおりです。コレクション ビュー コントローラー ( )と共に追加されるツールバーを作成します。initUIPopoverControllerUIPopoverControllerinitphotosCollectionViewController

// init for the custom UIPopoverController derived class follows:
-(id)init
{
    photosCollectionViewController = [[MyPhotosCollectionViewController alloc] init];
    self = [super initWithContentViewController:photosCollectionViewController];

    if (self) {
        // I tried taking the contentViewController's frame and moving it down 
        // by adding TOOLBAR_HEIGHT to its y co-ordinate, but it does not work.
        CGRect frame = self.contentViewController.view.frame;

        UIToolbar *viewToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, frame.size.width, TOOLBAR_HEIGHT)];
        viewToolbar.barStyle = UIBarStyleBlackTranslucent;

        UIBarButtonItem *cancelButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(cancelTapped:)];
        UIBarButtonItem *separator = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];

        CGRect labelFrame = CGRectMake(viewToolbar.frame.origin.x, viewToolbar.frame.origin.y, 100, 20);
        UIBarButtonItem *title = [[UIBarButtonItem alloc] initWithCustomView:[PANGraphicsHelper labelForToolbar:labelFrame text:@"Photos"]];
        UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(addPhotopTapped:)];
        viewToolbar.items = @[ cancelButton, separator, title, separator, addButton];
        [self.contentViewController.view addSubview:viewToolbar];
        _toolbar = viewToolbar;

        // Make the popover large enough to hold the 3x3 collection view and the toolbar above
        self.popoverContentSize = CGSizeMake(frame.size.width, frame.size.height + TOOLBAR_HEIGHT);
    }
}
4

2 に答える 2

0

私がする必要があったのは、 をツールバーUICollectionViewControllercollectionView下に移動することでした。

    UICollectionView *collectionView = ((UICollectionViewController *) self.contentViewController).collectionView;
    CGRect frame = collectionView.frame;
    collectionView.frame = CGRectMake(frame.origin.x, frame.origin.y + TOOLBAR_HEIGHT, frame.size.width, frame.size.height);
于 2013-09-24T03:55:48.137 に答える