2013-07-23 5 views
0

У меня есть UIScrollView и есть изображения в этом ScrollView, и они добавляются программно. Когда я нажимаю на изображение, я хочу, чтобы это изображение отображалось в полноэкранном режиме.Изображение в полноэкранном режиме из прокрутки

Что следует добавить в мой код?
Количество изображений зависит от [количества изображений];

self.scrollView.contentSize = CGSizeMake(320, 134); 
self.scrollView.delegate = self; 
int X=0; 

for (int i = 0; i < [images count]; i++) 
{ 
    UIImageView *imageView = [[UIImageView alloc] initWithFrame: CGRectMake(X, 0, 140, 136)] ; 
    imageView.backgroundColor = [UIColor redColor]; 
    [imageView setImage: [UIImage imageNamed:[NSString stringWithFormat:@"%d.png", i]]]; 
    [imageView setImage: [images objectAtIndex:i]]; 
    [self.scrollView addSubview: imageView]; 
    X = X + imageView.frame.size.height+5; 

    if(X > 320) 
     self.scrollView.contentSize = CGSizeMake(X, 134); 
} 
+1

Здесь вы должны создать пользовательскую кнопку и при нажатии на событие вам нужно будет открыть новый xib, в котором вы можете отображать полноэкранное изображение в imageView. Дайте тег кнопке, чтобы вы могли получить данные на основе тега – Mital

ответ

1

Тогда вы не должны добавлять UIImageViews.

Вместо этого добавьте UIButton типа Custom и добавьте изображение на кнопку и добавьте IBAction в UIButtons, который добавит FullScreenView с вашим изображением.

В вашем for() для каждой кнопки добавить тег с I и в функции IBAction получить бирку с [sender tag] и получить изображение с [images objectAtIndex:[sender tag]]

Пример:

-(void)test{ 

for (int i = 0; i < [images count]; i++) 
{ 

    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 
    button.frame = CGRectMake(X, 0, 140, 136); 
    [button setImage:[images objectAtIndex:i] forState:UIControlStateNormal]; 
    button.tag = i; 
    [button addTarget:self action:@selector(showFullscreen:) forControlEvents:UIControlEventTouchUpInside]; 
    [self.scrollView addSubview:button]; 
    X = X + button.frame.size.height+5; 

    if(X > 320) 
     self.scrollView.contentSize = CGSizeMake(X, 134); 
} 

} 

-(IBAction)showFullscreen:(id)sender{ 

UIImageView *imageView = [[UIImageView alloc] initWithFrame: CGRectMake(0, 0, 320, 480)] ; 
imageView.backgroundColor = [UIColor redColor]; 
[imageView setImage: [images objectAtIndex:[sender tag]]]; 
[self.view addSubview: imageView]; 
} 
+0

, изображение будет открыто в текущем представлении или новом виде. – Nasir

+0

, то в IBAction добавьте что-то вроде этого: UIImageView * imageView = [[UIImageView alloc] initWithImage: [images objectAtIndex: [sender tag]]; [self.view addSubview: imageView]; –

+0

сэр, можете ли вы изменить мой код с этим. – Nasir

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