Вместо добавления Imageview и прозрачной кнопки поверх Imageview.Вы можете просто добавить пользовательский тип UIButton и установить изображение кнопки для вашего изображения в виде прокрутки.Нет необходимости снимать изображения и UIButton.Просто возьмите UIButton и setImage, и все будет в порядке.Я попытался дать вам пример кода ниже из моего приложения.Пожалуйста, измените его в соответствии с вашими потребностями.Я думаю, что это то, что вам нужно.
First of Take все константы в одном из глобальных файлов.Я взял это в en.lproj.как ниже.
"TotalThumbnailCount"="6";
"Coloumn"="2";
"ThumbnailHeight"="151";
"ThumbnailWidth"="151";
//Marging between two images
"MarginX" = "6";
"MarginY" = "6";
Затем инициализируйте все ваши локальные переменные из глобальных переменных.как показано ниже
-(void)PopulateVariables{
TotalThumbnail = [NSLocalizedString(@"TotalThumbnailCount",nil) intValue];
Colomn = [NSLocalizedString(@"Coloumn",nil) intValue];
ThumbnailHeight = [NSLocalizedString(@"ThumbnailHeight",nil) intValue];
ThumbnailWidth = [NSLocalizedString(@"ThumbnailWidth",nil) intValue];
MarginX = [NSLocalizedString(@"MarginX",nil) intValue];
MarginY= [NSLocalizedString(@"MarginY",nil) intValue];
}
Теперь вы должны инициировать миниатюры изображений с помощью функции UIButton снизу.
-(void)PopulateThumbnails
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
XCordinate=MarginX;
YCordinate = MarginY;file:
for(int i=1; i <=TotalThumbnail;i++){
UIButton *btnMenu = [UIButton buttonWithType:UIButtonTypeCustom];
//NSData *data =UIImageJPEGRepresentation(, 1);
[btnMenu setBackgroundImage:[UIImage imageNamed:[NSString stringWithFormat:@"%d.png",i]] forState:UIControlStateNormal];
CGRect frame = btnMenu.frame;
frame.size.width=ThumbnailWidth;
frame.size.height=ThumbnailHeight;
frame.origin.x=XCordinate;
frame.origin.y=YCordinate;
btnMenu.frame=frame;
btnMenu.tag=i;
btnMenu.alpha = 1;
[btnMenu addTarget:self action:@selector(btnSelected:) forControlEvents:UIControlEventTouchUpInside];
[scrollView addSubview:btnMenu];
XCordinate = btnMenu.frame.origin.x + btnMenu.frame.size.width + MarginX;
if(i%Colomn==0)
{
XPosition = XCordinate;
YCordinate = btnMenu.frame.origin.y + btnMenu.frame.size.height + MarginY;
XCordinate = MarginX;
}
}
[pool release];
}
А затем установите свой размер содержимого прокрутки
scrollView.contentSize = CGSizeMake(XPosition, YCordinate);
Когда кто-то одним нажатием на любое изображение попадает в событие ниже.
-(IBAction)btnSelected:(id)sender{
UIButton *btnSelected = sender;
switch (btnSelected.tag) {
}
Дайте мне знать, если я что-то пропущу и если вы не понимаете ... Надеюсь, что это поможет.