2012-05-09 3 views
0

Как назначить им иметь тег:Как помечать UIImage в UIScrollView

self.images = [NSMutableArray arrayWithObjects: 
         @"1.jpg",@"2.jpg",@"3.jpg",@"4.jpg",@"5.jpg",nil]; 

Всякий раз, когда UIScrollView останавливается на конкретном изображении он будет делать что-то/действие/анимацию. Как, например, рисование окна слева при отображении изображения 1, рисование прямоугольника справа, когда изображение отображается в UIScrollView. Благодарю.

здесь массив:

- (void)awakeFromNib 
{  
    if (self) { 

     //set up carousel data 
     //wrap YES = infinite loop 
     wrap = YES; 

     self.images = [NSMutableArray arrayWithObjects: 
         @"1.jpg",@"2.jpg",@"3.jpg",@"4.jpg",@"5.jpg"nil]; 
    } 

} 

здесь, где показано мое изображение:

- (UIView *)carousel:(iCarousel *)_carousel viewForItemAtIndex:(NSUInteger)index reusingView:(UIView *)view 
{ 
    view = [[UIImageView alloc] initWithImage:[UIImage imageNamed:[images objectAtIndex:index]]]; 

    return view; 

} 
+0

Я не понимаю. Что вы подразумеваете под «Когда будет выполняться конкретное изображение в UIScrollView, анимация/действие будет выполнено»? –

+0

Я думаю, вы знаете, что у вас нет изображений (но строк) в коде, который вы отправили ... –

+0

Его объявлено в awakeFromNib. –

ответ

1

Я отвечаю на основании того, что получил от комментариев по другим ответам (вы действительно должны отредактировать свой вопрос !!!).

Я предполагаю, что в режиме подкачки есть UIScrollView, который показывает ровно одно изображение на своем полном кадре после прокрутки. Если вы заинтересованы только в получении изображения и сделать что-то, скажем, в зависимости от тега вы установили ранее, код в делегате Вашего взгляда скроллинга может выглядеть так:

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView 
{ 
    int imageTag; 
    for(UIView *sv in scrollView.subviews) 
    { 
    if(sv.frame.origin.y >= scrollView.contentOffset.y 
     && sv.frame.origin.y <= scrollView.contentOffset.y + scrollView.frame.size.height) 
    { 
     imageTag = sv.tag; 
     break; 
    } 
    } 
    switch (imageTag) 
    { 
     //do something 
    } 
} 
+0

Он говорит 'Нет члена с именем 'y' в struct CGSize'. –

+0

Я хочу, чтобы иметь возможность достичь этого, например, если image1 находится там, где UIScrollview останавливается, он будет рисовать поле, когда изображение 2 находится там, где UIScrollview останавливается, он будет рисовать прямоугольник справа. И у меня 75 изображений. –

+0

@bry Хмм ... мой код не имеет доступа ни к 'y' в' CGSize'. Вы скопировали и вставляли –

0

, если вы говорите о навигации следующего изображения, которое будет отображаться. затем проверить образец кода здесь

http://developer.apple.com/library/ios/#samplecode/PageControl/Introduction/Intro.html

и если любая вещь еще. затем объясните, что

+0

Всякий раз, когда UIScrollView останавливается на определенном изображении, он будет делать что-то/действие/анимацию. Как, например, рисование окна слева при отображении изображения 1, рисование прямоугольника справа, когда изображение отображается в UIScrollView. Благодарю. –

+0

i thnk это можно получить, проверив, какая страница выбрана. – Saad

+0

Я использую Вертикальный UIScrollView –

0

Как насчет проверки x-координаты изображений? Кажется, это законный способ проверить, что изображение показывает ... Если вы хотите тег, вы можете либо использовать индексы, либо хранить указатели на изображения в словаре.

+0

у вас есть образец кода для этого? –

+0

Можете ли вы показать код того, как вы добавляете изображения в scrollview? Тогда я смогу добавить образец. – Martol1ni

+0

здесь: - (пустоты) awakeFromNib2 { , если (само) {// установить данные карусели // обернуть YES = бесконечный цикл обертка = ДА; self.images = [NSMutableArray arrayWithObjects: @ "1.jpg", @ "2.jpg", @ "3.jpg", @ "4.jpg", @ "5.jpg", nil]; } } –

0

Вы можете просто вычислить смещение вашего UIScrollView, используя следующую формулу:

NSUInteger currentPage = floor((yourScrollView.contentOffset.y - theHeightOfYourImage/2)/theHeightOfYourImage)+1 

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

Вы могли бы реализовать это в

- (void) scrollViewDidScroll:(UIScrollView *)scrollView 

Это позволило бы дать вам индекс для работы.

Смежные вопросы