0

I'm a newbie of Xcode and Objective-c. Recently I wanna do a task about popping up tableviews. When a button is pressed, the tableview should pop up from the bottom of the screen. The tableview will contain just a few items so I don't wanna it occupy full screen. I read the manual and found UIModalPresentationStyle, but it seems not fulfill my requirements. So what's the more accurate methods I can use?

一二三
  • 21,059
  • 11
  • 65
  • 74
RaistQian
  • 89
  • 1
  • 4

3 Answers3

1

You can use below code to create an animation block . Set the frame for the table view as (0,480,320,0) When you hit a button change the frame of the table view in the animation block and make it to CGRectMake(0,200,320,280) or something .

   [UIView beginAnimations:@"AnimateTableView" context:view];
   [UIView setAnimationDuration:0.5];
   [UIView setAnimationCurve:UIViewAnimationCurveEaseOut];

   tableView.frame = CGRectMake(0, 200 , 320, 280);

   [UIView commitAnimations];

The same animation block for hiding it again but with the frame again begin set to CGRectMake(0,480,320,0). This should work in your case .

Bharat Jagtap
  • 1,692
  • 2
  • 22
  • 35
1

While @Bharat J's answer is correct, those methods are deprecated in iOS 4.0.

The latest and greatest implementation is + (void)animateWithDuration:(NSTimeInterval)duration animations:(void (^)(void))animations

Implemented as:

[UIView animateWithDuration:0.5 animations: ^{
        tableView.frame = newFrame;
    }
];
fearmint
  • 5,276
  • 2
  • 33
  • 45
0

Another option would be to use a UIActionSheet and add the uitableview as a subview.

Here is a very similar question about how to add a UIPickerview with similar effect.

Add UIPickerView & a Button in Action sheet - How?

Community
  • 1
  • 1
utahwithak
  • 6,235
  • 2
  • 40
  • 62