私は iOS 開発が初めてなので、私の質問に注意してください。
私のタイトルが言ったように、
UIView
どうすれば(アニメーションで)非表示および表示できますUIActionSheet
か?
グーグルで検索したところ、芽は有効な解決策を見つけられませんでした..
私は iOS 開発が初めてなので、私の質問に注意してください。
私のタイトルが言ったように、
UIView
どうすれば(アニメーションで)非表示および表示できますUIActionSheet
か?
グーグルで検索したところ、芽は有効な解決策を見つけられませんでした..
次のコードを試してください:
- (IBAction)showTapped:(id)sender {
hideButton.enabled=YES;
showButton.enabled=NO;
[UIView animateWithDuration:.5 animations:^{
subView.frame=CGRectMake(0, 225, subView.frame.size.width, subView.frame.size.height);
}];
}
- (IBAction)hideTapped:(id)sender {
hideButton.enabled=NO;
showButton.enabled=YES;
[UIView animateWithDuration:.5 animations:^{
subView.frame=CGRectMake(0, 480, subView.frame.size.width, subView.frame.size.height);
}];
}
この場合、できることはUIView
、ウィンドウに を追加して、必要なときに表示することです。したがって、最初に行う必要があるのは、 のオブジェクトを作成することですAppDelegate
。
AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication]delegate];
そして、次のようなビューを作成します
CGRect frame = CGRectMake(0, 460, 320, 300);
UIView *ActionView = [UIView alloc]initWithFrame:frame];
これは、ビューをウィンドウに表示するためのものです。ビューのy 座標は、画面の寸法よりも下にある必要があるため、ビューを特定のレベルに戻してから再度送信することができます。
[appDelegate.window addSubview:ActionView];
次に、これらのカスタム アニメーションを追加して、ビューの表示と非表示を切り替えるだけです
あなたの見解を明らかにするには
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationBeginsFromCurrentState:YES];
[UIView setAnimationDuration:0.25];
CGRect rect = [ActionView frame];
rect.origin.y = -300;
[ActionView setFrame:rect];
[UIView commitAnimations];
ビューを非表示にするには
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationBeginsFromCurrentState:YES];
[UIView setAnimationDuration:0.25];
CGRect rect = [ScrollView frame];
rect.origin.y = 460;
[ScrollView setFrame:rect];
[UIView commitAnimations];
最後に、独自の寸法とフレームに調整できます。お役に立てれば...
これを達成するには、以下の手順に従います。
1) UIView
pickerView という名前をドラッグし、ビュー内に追加します。
2) ドラッグUIToolBar
(必要な場合)、ビュー内に追加します。
3) をドラッグUIPickerView
し、ビュー内に追加します。
4) IBOutlet
pickerView に接続します。
5) コード内に以下のメソッドを実装します。
-(void)viewDidAppear:(BOOL)animated{
self.pickerView.frame = CGRectMake(0, self.view.frame.size.height+300, self.view.frame.size.width, 300);
}
-(void)hidePickerView{
self.isPickerHidden = YES;
[UIView animateWithDuration:0.5 animations:^{
self.pickerView.frame = CGRectMake(0, self.view.frame.size.height+300, self.view.frame.size.width, 300);
}];
}
-(void)showPickerView{
self.isPickerHidden = NO;
[UIView animateWithDuration:0.5 animations:^{
self.pickerView.frame = CGRectMake(0, self.view.frame.size.height-300, self.view.frame.size.width, 300);
}];
}
//Assuming you are tapping on cell, or you can use button connecting to the IBAction as well
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
if (self.isPickerHidden){
[self showPickerView];
}
else{
[self hidePickerView];
}
}
この解決策を試してください....うまくいきます
#pragma mark - Date Selector View PresentModelView with Transparent ViewController
- (void) showModal:(UIView*) modalView {
UIWindow *mainWindow = [(AppDelegate *)[UIApplication sharedApplication].delegate window];
CGPoint middleCenter;
middleCenter = CGPointMake(modalView.center.x, modalView.center.y);
CGSize offSize = [UIScreen mainScreen].bounds.size;
CGPoint offScreenCenter = CGPointMake(offSize.width / 2.0, offSize.height * 1.5);
modalView.center = offScreenCenter;
if ([[mainWindow subviews] containsObject:modalView]) {
[modalView removeFromSuperview];
}
[mainWindow addSubview:modalView];
[mainWindow bringSubviewToFront:modalView];
// Show it with a transition effect
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.3];
// animation duration in seconds
modalView.center = middleCenter;
[UIView commitAnimations];
}
// Use this to slide the semi-modal view back down.
- (void) hideModal:(UIView*) modalView {
CGSize offSize = [UIScreen mainScreen].bounds.size;
CGPoint offScreenCenter = CGPointMake(offSize.width / 2.0, offSize.height * 1.5);
[UIView beginAnimations:nil context:(__bridge void *)(modalView)];
[UIView setAnimationDuration:0.3];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(hideModalEnded:finished:context:)];
modalView.center = offScreenCenter;
[UIView commitAnimations];
}
- (void) hideModalEnded:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context {
UIView *modalView = (__bridge UIView *)context;
[modalView removeFromSuperview];
}