J'ai un court clip audio qui joue quand on appuie sur un bouton. Je veux créer un contrôleur coulissant à partir du bas qui contient un bouton pause/lecture et une barre coulissante affichant la longueur de l'audio. Je veux également que la vue derrière le contrôleur reste scrollable lorsque le contrôleur est visible. Je crois que cela exclut l'utilisation d'un UIAlertView ou d'UIActionSheetView car les deux font que l'affichage ci-dessous reste statique. Quelle est la meilleure façon de mettre en œuvre cela?Contrôleur de l'iPhone pour les commandes du lecteur audio
EDIT: je l'ai trouvé un tutoriel utile ici: http://iosdevelopertips.com/user-interface/sliding-views-on-and-off-screen-creating-a-reusable-sliding-message-widget.html
et j'ai pu modifier cela pour obtenir quelque chose de ce que je veux. Cependant, si je voudrais animer en utilisant un fichier nib où/comment pourrais-je appeler cela?
#import "SlidingMessageController.h"
@interface SlidingMessageController(private)
- (void)hideMsg;
@end
@implementation SlidingMessageController
#pragma mark -
#pragma mark Private Methods
- (void)hideMsg;
{
// Slide the view off screen
CGRect frame = self.frame;
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:.75];
frame.origin.y = 480;
frame.origin.x = 0;
self.frame = frame;
//to autorelease the Msg, define stop selector
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(animationDidStop:finished:context:)];
[UIView commitAnimations];
}
- (void)animationDidStop:(NSString*)animationID finished:(BOOL)finished context:(void *)context
{
[self removeFromSuperview];
[self release];
}
#pragma mark -
#pragma mark Initialization
- (id)initWithDirection:(int)dir;
//- (id)initWithTitle:(NSString *)title message:(NSString *)msg
{
if (self = [super init])
{
//Switch direction based on slideDirection konstant
switch (dir) {
case kSlideUp: //slideup
// Notice the view y coordinate is offscreen (480)
// This hides the view
// What should I be doing here if I want to get the nib file???
self.frame = CGRectMake(0,480,320, 90);
[self setBackgroundColor:[UIColor blackColor]];
[self setAlpha:.87];
newY = 380;
newX = 0;
myDir = 0;
break;
default:
break;
}
}
return self;
}
#pragma mark -
#pragma mark Message Handling
- (void)showMsgWithDelay:(int)delay
{
// UIView *view = self.view;
CGRect frame = self.frame;
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:.75];
// Slide up based on y axis
// A better solution over a hard-coded value would be to
// determine the size of the title and msg labels and
// set this value accordingly
frame.origin.y = newY;
frame.origin.x = newX;
self.frame = frame;
[UIView commitAnimations];
// Hide the view after the requested delay
[self performSelector:@selector(hideMsg) withObject:nil afterDelay:delay];
}
#pragma mark -
#pragma mark Cleanup
- (void)dealloc
{
if ([self superview])
[self removeFromSuperview];
[super dealloc];
}
@end
Je déconseille de le faire. Ce sera une interface déroutante et sera difficile à contrôler par programme. Il y a une raison pour laquelle les feuilles d'action sont modales. – TechZen
S'il est bien exécuté, il pourrait certainement fonctionner à mon goût. Disons que vous appuyez sur un bouton pour démarrer la lecture d'un fichier audio. Les contrôles apparaissent alors en bas de l'écran pour vous permettre de lire/mettre en pause etc. à tout moment. Ne pensez pas que cela pourrait dérouter les utilisateurs. Encore une fois, si c'est fait correctement, bien sûr. – Rengers
Je pensais à quelque chose de similaire à l'application NPR Music. C'est très bien fait et je pense que c'est une bonne solution à ce que je cherche. – alittlelost