誰かがこのシナリオで私を助けることができますか?
*タップすると、スライドがUIViewを開き、タップされたボタンが左側にあるボタンがあります。
※このボタンを再度タップするとUIViewがスライドバックします。
誰かがこのシナリオで私を助けることができますか?
*タップすると、スライドがUIViewを開き、タップされたボタンが左側にあるボタンがあります。
※このボタンを再度タップするとUIViewがスライドバックします。
あなたが説明することは簡単です。右からスライドインするビューを引き出し (「drawerView」) と呼びましょう。ドロワー ビューをビュー コントローラーのメイン ビューの子ビューとして設定します。
その「引き出し」ビューをコンテナ ビューにします。その中に欲しいものをすべて入れてください。(テキスト ビュー、ボタンなど) また、このビュー内にボタンを配置します。そのボタンをView Controllerのアクション「slideDrawer」に接続します。
次に、"clips subviews" が false であることを確認し、左矢印キーでボタンをドロワー ビューの左端から離します。IB では消えますが、心配しないでください。IB は、実行中のプログラムのように「クリップ サブビュー」フラグを尊重しません。
drawerView へのアウトレットを作成し、それをコードにリンクします。
ドロワー ビューが思い通りに見えるようになったら、「サイズ インスペクター」で x 座標に注意してください。その値をkVisibleXとしましょう。次に、そのビューを画面外になるまで右にドラッグします。ボタンは IB では表示されませんが、実行時にウィンドウの端にのみ表示されます。(最初の画像に表示されているように)
オフスクリーンにあるときのドロワー ビューの x 座標に注意してください。その値をkOffscreenXとしましょう。
ブール型のインスタンス変数「drawerIsShowing」をビュー コントローラーに追加します。
ここで、IBAction メソッドの slideDrawer を記述します。
- (IBAction) slideDrawer: (id) sender;
そのメソッドで、drawerIsShowing をチェックして、ドロワーが現在表示されているかどうかを確認します。その場合は、画面外にスライドさせます。そうでない場合は、画面上でスライドします。
- (IBAction) slideDrawer: (id) sender;
{
CGFloat newX;
if (drawerIsShowing)
newX = kOffscreenX;
else
newX = kVisibleX;
[UIView animateWithDuration: .25
animations:
^{
CGRect drawerFrame = drawerView.frame;
drawerFrame.origin.x = newX;
drawerView.frame = drawerFrame;
}
drawerIsShowing = !drawerIsShowing;
}
BOOL を宣言して、ビューが非表示かどうかを確認します。
.h で
BOOL _isContentVisible;
.m
-(IBAction)showHideContentView:(id)sender
{
//BOOL isContentVisible= CGRectIntersectsRect(self.view.bounds, _sideContentScrollView.frame);
[UIView animateWithDuration:1.0f
delay:0
options:UIViewAnimationOptionBeginFromCurrentState
animations:^{
//hide if visible else show
if (_isContentVisible) { // Hide
_isContentVisible = NO;
[_sideContentView setFrame:CGRectMake(-320, 0, 360, 748)];// 40 is assumed to button size
}
else { // Show
_isContentVisible = YES;
[_sideContentView setFrame:CGRectMake(0, 0, 360, 748)];
}
}
completion:^(BOOL finished) {
if (finished) {
}
}];
}
ウィンドウ 1 を view1 に、ウィンドウ 2 を view2 にします。これらの各ビューに、ビューに必要なものを入力します。両方のビューに同じボタンを配置する場合は、同じテキストを持つ各ビューにボタンを配置します。ユーザーにとっては同じボタンです。ビュー 1 のボタンのアクションをビュー 2 に押します。ビュー 2 は、指定した内容で初期化されます。ビュー 2 でボタンを押すと、ビューがポップされ、ビュー 1 に戻ります...
それが役立つことを願っています。より具体的なサポートが必要な場合は、さらに情報を提供してください。さらにサポートできるはずです。