2009-10-16 2 views
3

эй, ребята, это мой первый пост здесь, и я довольно новичок в программировании на iphone. я только начал около месяца назад и занимался только небольшими учебными типами приложений, но в любом случае, мой вопросUIButtons над UIImageView Zooming

В настоящее время у меня есть прокручиваемый и масштабируемый UIScrollView, который загружает подвью UIImageView, и я хочу добавить некоторые (UIButtons) над представлением изображения, но когда я увеличиваю масштаб и увеличиваю масштаб изображения по всей группе (кнопкам и изображению).

если я добавить UIButtons в мой UIScrollView и масштабирование изображения, масштабирование и кнопка остаться в оригинальном месте

если я добавить UIButtons к моей UIImageView они правильно увеличить, но больше Арентую кнопку. IE они теряют свою интерактивность.

позже плохо добавить много кнопок в массив и добавить их.

я был бы признателен за любую помощь я могу получить

это часть моей mainViewController.m

- (void)viewDidLoad 

{

[scrollView2 setBackgroundColor: [UIColor blackColor]];

[scrollView2 setCanCancelContentTouches:NO]; 

scrollView2.clipsToBounds = YES; // default is NO, we want to restrict drawing within our scrollview 
scrollView2.indicatorStyle = UIScrollViewIndicatorStyleWhite; 
scroll2ImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"bigNH.jpg"]]; 
[scrollView2 addSubview:scroll2ImageView]; 
[scrollView2 setContentSize:CGSizeMake(scroll2ImageView.frame.size.width, scroll2ImageView.frame.size.height)]; 
scrollView2.minimumZoomScale = .5; 
scrollView2.maximumZoomScale = 3; 
scrollView2.delegate = self; 
[scrollView2 setScrollEnabled:YES]; 




UIButton *myButton = [UIButton buttonWithType:UIButtonTypeCustom]; 

CGRect newSize = CGRectMake(658, 435, 50, 50); // position in the parent view and set the size of the button 
myButton.frame = newSize; 
[myButton setImage:[UIImage imageNamed:@"redStop.png"] forState:UIControlStateNormal]; 
// add targets and actions 
[myButton addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside]; 
// add to a view 
[scroll2ImageView addSubview:myButton]; 

[redLineArray addObject:myButton]; 


[scroll2ImageView release]; 

}

+0

Непонятно, что вы хотите. Вы хотите, чтобы кнопки масштабировались и оставались функциональными? Кнопки масштабируются с помощью scrollview или подвью? Кнопки не масштабируются вообще? – mikestew

+0

извините за то, что неясно, я хочу, чтобы мои кнопки увеличивались с моим фоновым изображением в том же масштабе и оставались функциональными – Hunter

+1

Привет, вы нашли решение для этого? Даже я столкнулся с этой проблемой. События кнопок не срабатывают после увеличения – lostInTransit

ответ

0

Это не может помочь, и это не то, что кажется, что вы хотите сделать.

Однако, когда мне нужны кнопки, связанные со списком прокрутки, я добавляю родительское представление, добавляю кнопки в это представление, а также добавляю прокрутку к этому виду. Кнопка (и) и scrollview будут братьями и сестрами. Это позволяет пользователю прокручивать содержимое прокрутки, сохраняя при этом, что кнопки всегда отображаются.

-isdi-

0

По умолчанию UIImageView имеет userInteraction отключен. Вы изменили это?

Кроме того, мне было бы очень непросто добавить subviews в UIImageView, это действительно предназначено для хранения одного изображения. Было бы лучше создать обычный UIView и добавить к нему UIButtons и UIImageView. Очень легко контролировать порядок, чтобы кнопки отображались поверх изображения.

P.S. Просто, чтобы сделать вашу жизнь проще, вместо:

[scrollView2 setContentSize:CGSizeMake(scroll2ImageView.frame.size.width, scroll2ImageView.frame.size.height)]; 

Вы можете использовать:

[scrollView2 setContentSize:scroll2ImageView.frame.size]; 
0

Сделать один вид, чтобы содержать все ваше масштабируемое содержание (все, казалось бы), и называете это сказать contentView , Теперь разместите все, что хотите, в этом contentView, imageView и всех ваших кнопок и т. Д.

В вашем UIScrollView делегата месте этого: (не забудьте установить делегата в Scrollview, если вы еще не)

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView { 
    return self.contentView; 
} 

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

Также не забудьте установить значение contentSize для scrollView для точного размера вашего масштабируемого содержимогоView.

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