Как создать горизонтальный спиннер + таймер, как это? - PullRequest
1 голос
/ 13 октября 2009

alt text

возможно ли создать дизайн примерно так? любая помощь в этом отношении была бы очень полезна для меня. функциональность, которую я хочу, - это вращать колесо слева направо или справа налево для выбора времени ... желтый - цвет выбора, а красный - оставшееся время, когда идет обратный отсчет.

Ответы [ 3 ]

1 голос
/ 02 июня 2011

Посмотри мое видео http://www.youtube.com/watch?v=4acFshAlGJ8

Я использую https://lh3.googleusercontent.com/-WZEDMSmfrK0/TeeD93t8qYI/AAAAAAAAAKw/X9D6jRkLfLk/s800/MUKScale.png Изображение в виде Scale в scrollView это неполный пример, чтобы показать, как это возможно.

вот какой-то полезный кусок кода, в этом приближении все статично, но для реальной работы нужно работать больше,

   - (void)viewDidLoad {
    [super viewDidLoad];

    [self.view addSubview:scrollView];

    UIImageView *backImgg = [[UIImageView alloc] initWithFrame:CGRectMake(x,y,886,15)];
    [backImgg setImage: [UIImage imageNamed:@"MUKScale.png"]];//Image in the link above
    [scrollView addSubview:backImgg];
    [backImgg release]; 

    [scrollView setContentSize:CGSizeMake(886,15)];
    return;
}

NSTimer *timer ;
float timeSet =0 ;
-(IBAction) btnPressed
{
timer = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(showTimeInLbl) userInfo:nil repeats:YES];
}

-(void)showTimeInLbl
{
    CGRect visibleRect;
    visibleRect.origin = scrollView.contentOffset;
    visibleRect.size = scrollView.contentSize;
    NSLog( @"Visible rect: %@", NSStringFromCGRect(visibleRect) );


    float time = visibleRect.origin.x / 8;
    timeSet = time;
    lblTime.text = [NSString stringWithFormat:@"%f",time];

    [UIView animateWithDuration: .1
                     animations: ^{
                         [scrollView setContentOffset:CGPointMake(visibleRect.origin.x - 8,0) animated:NO];
                     }completion: ^(BOOL finished){

                     }
     ];


    timeSet-=0.1;

    lblTime.text = [NSString stringWithFormat:@"%f",timeSet];

    if(timeSet<=0)
    {
        [timer invalidate];
        lblTime.text = @"0";

        [UIView animateWithDuration: .1
                         animations: ^{
                             [scrollView setContentOffset:CGPointMake(0,0) animated:NO];
                         }completion: ^(BOOL finished){

                         }
         ];
    }

}
1 голос
/ 24 июня 2010

Использовать объект просмотра галереи. Просто заполните его изображениями, которые вы хотите прокрутить по горизонтали. Это было бы хорошим приближением к тому, чего вы хотите достичь.

0 голосов
/ 01 июня 2011

Вы можете использовать Never Ended scrollView ( Например, это , которое у вас есть, как выключение подкачки). Теперь вы добьетесь масштаба и, используя номер страницы или координаты прокрутки, сможете найти показание масштаба, которое будет показано выше.

При запуске обратный отсчет создает анимацию содержимого UIViewOffset CGPointMake (10, 100).

например:

[UIView animateWithDuration: 1.5 /* Give Duration which was also on top */
                 animations: ^{
                     [scrollView setContentOffset:CGPointMake(0,0) animated:NO];
                 }completion: ^(BOOL finished){          }];
...