UIBmode-ні UIImageView арқылы қалай жасауға болады?

I want to create a UIButton to display over an UIImageView. My code snippet is as shown below:

imageView = [[UIImageView alloc] initWithImage:image]; //initWithImage:image

imageView.userInteractionEnabled = YES; //to enable touch interaction with image



UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[btn setTitle:@"ClickMe" forState:UIControlStateNormal];
[btn.titleLabel setFont:[UIFont systemFontOfSize:16]];


 btn.frame = CGRectMake(340, 550, 70, 50);

[btn addTarget:self action:@selector(onClickHotSpotButton)   forControlEvents:UIControlEventTouchUpInside]; //it wasnt working


[imageView addSubview:btn];
[self addSubview:imageView]; 

Менің қосымшам кескіннің бөлігіндегі суретті бейнелейді, ол мен қалаймын, бірақ ол суретті басуға жауап бермейді. Оның орнына ол бір кранды анықтайды, себебі оны табу кезінде журнал шыққан. Бірақ бұл батырманың таңдауға және қандай да бір функцияны орындауға жетуін қалаймын.

Алдын-ала рақмет.

вахиб

9

8 жауаптар

Мен мұны істедім және бұл мен үшін жұмыс істейді .......

UIImageView * imageView = [[UIImageView alloc]init];
[imageView setImage:[UIImage imageNamed:@"image.jpeg"]];
[imageView setFrame:CGRectMake(10,10,300,300)];
[imageView setContentMode:UIViewContentModeScaleToFill];
[imageView setUserInteractionEnabled:TRUE];

UIButton * ButtonOnImageView = [[UIButton alloc]init];
[ButtonOnImageView setFrame:CGRectMake(135,120,60,30)];
[ButtonOnImageView setImage:[UIImage imageNamed:@"image.jpeg"] forState:UIControlStateHighlighted];
 [ButtonOnImageView setImage:[UIImage imageNamed:@"image2.jpeg"] forState:UIControlStateNormal];
[ButtonOnImageView addTarget:self action:@selector(OnClickOfTheButton) forControlEvents:UIControlEventTouchUpInside];

 [imageView addSubview:ButtonOnImageView];
 [self.view addSubview:imageView];
5
қосылды
Егер сіз суреттерге түймені орнатсаңыз, неге сіз UIImageView-ды пайдаланасыз?
қосылды автор tcurdt, көзі
  1. you have to add define button as custom.It will work for you.

    UIButton *Button = [UIButton buttonWithType:UIButtonTypeCustom];

3
қосылды

Сіз тек бір түймені пайдалана аласыз:

[UIButton setImage:[imageNamed:@"image.png"]];
3
қосылды
Сіздің шешіміңіз ең талғампаз болып көрінеді
қосылды автор nurxyz, көзі

түймені қосалқы сынып ретінде қосу керек

scrollview

жоқ

сурет

.. батырманың uiimageview көрінісінің қосалқы сыныбы болса, оны басу мүмкін болмайды. басылған түймешікті тану үшін әрбір түйме үшін арнайы тег тағайындаңыз

бұл көмектеседі деп үміттенемін

1
қосылды

Мен UIButton-ды UIImageVI ішінде көрсете аламын және бұл жаңарту коды. Соңғы кездегі проблемалар туралы айттым.

imageView = [[UIImageView alloc] initWithImage:image]; //initWithImage:image

//imageView.tag = i;//tag our images for later use when we place them in serial form
[imageView setContentMode:UIViewContentModeScaleToFill]; //though it has no impact
imageView.userInteractionEnabled = YES; //to enable touch interaction with image

[self addSubview:imageView];

UIButton *btn = [[UIButton buttonWithType:UIButtonTypeContactAdd] retain]; //Plus icon button

btn.frame = CGRectMake(215, 550, 100, 100);
[btn addTarget:self action:@selector(onClickHotSpotButton) forControlEvents:UIControlEventTouchUpInside]; //it wasnt working

**[self addSubview:btn]; //Buttons are clickable but shows button on all images**

//[imageView addSubview:btn]; //Buttons are not clickable and are shown on all images

Менің қазірде екі нұсқам бар. ImageView элементінің басты элементі болып табылатын ImageView немесе ScrollView ішкі көрінісін жасай аламын ба? Егер мен [self addSubView: btn] сияқты Scrollview түймешігінің ішкі көрінісін жасасам; ол дұрыс күйде көрсетіледі және басылатын болады, бірақ кезектегі барлық суреттерде жасалады, себебі мен оны i.e айналдыру көрінісінің ата-аналық көрінісін жасай аламын. Егер мен оны баланың көрінісін көретін болсам, i.e әр сурет үшін бірегей болып табылатын ImageView, бірақ әлі де оның барлық суреттерде көрсетілетін және оны басылмайтын: /

Кез-келген1 мені оны басуға болатындығын және динамикалық батырманың мен кескіннің арасында бір-бірімен байланысын сақтауға бағыттауға бола ма, сондықтан кез-келген суретте әртүрлі позицияларда түрлі түймелер бар.

0
қосылды

Егер ол басылатын кескін болса, кескінді үстінен көремін.

UIButton *sampleButton = [UIButton buttonWithType:UIButtonTypeCustom];
[sampleButton setFrame:CGRectMake(kLeftMargin, 10, self.view.bounds.size.width - kLeftMargin -      kRightMargin, 52)];
[sampleButton setTitle:@"Button Title" forState:UIControlStateNormal];
[sampleButton setFont:[UIFont boldSystemFontOfSize:20]];
[sampleButton setBackgroundImage:[[UIImage imageNamed:@"redButton.png"] stretchableImageWithLeftCapWidth:10.0 topCapHeight:0.0] forState:UIControlStateNormal];
[sampleButton addTarget:self action:@selector(buttonPressed) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:sampleButton];
0
қосылды
Жауап бергеніңіз үшін рахмет. Кескіндемеде ол мен үшін маңызды емес. Барлығы оны басу мүмкіндігін беру. Менің қазірде екі нұсқам бар. ImageView элементінің басты элементі болып табылатын ImageView немесе ScrollView ішкі көрінісін жасай аламын ба? Егер мен [self addSubView: btn] сияқты Scrollview түймешігінің ішкі көрінісін жасасам; ол дұрыс күйде көрсетіледі және басылатын болады, бірақ кезектегі барлық суреттерде жасалады, себебі мен оны i.e айналдыру көрінісінің ата-аналық көрінісін жасай аламын. Егер мен әртүрлі суреттер үшін бірегей болып табылатын ImageView-ді көретін болсам, онда ол көрінбейді:
қосылды автор Wahib Ul Haq, көзі

Мен өзімнің қосымшаларымның бірінде осындай нәрсе жасадым. Мен әртүрлі суреттер сериясын қамтитын xib файлын жасадым, олардың әрқайсысы үстіңгі жағынан басылған түймешікпен. Мен оларды сабақ файлындағы тиісті орындарға байланыстырдым. Содан кейін мен жұмыс істедім, ол басылған тетіктердеBegan көмегімен:

if(CGRectContainsPoint(btnFirstButton.frame, touchLocation)){
    //do something useful
}else if(CGRectContainsPoint(btnSecondButton.frame, touchLocation)){
    //do something useful
}

Бұл көмектеседі деген үміт - мен үшін жұмыс істеді :-)

0
қосылды

түймені қолданушы интерактивті параметрлерін орнатуға тырысыңыз.

[btn setEnabled:YES];

UIOmageView әдепкі бойынша ажыратылған түйменің пайдаланушы интерфейсін орнатады.

Енді сіз бұл көріңіз. Тек соңғы екі жолды өзгерте аласыз.

Ауыстыру:

[imageView addSubview:btn];
[self addSubview:imageView]; 

бұл:

[self addSubview:imageView];
[self addSubview:btn];

Көз алдымыздағы суретті бірінші және екінші рет қосқаныңызға көз жеткізіңіз. басқаша, батырма бейнелеудің артына орналастырылып, жасырын болып көрінетін еді.

0
қосылды