2012-04-30 12 views
3

다른 게시물을 검색했지만 해결책을 찾지 못했습니다.UIButton을 클릭 할 수 없습니다.

UIButton을 (를) 클릭 할 수 없습니다. 클릭하면 어두워지지 않습니다. 문제는 선택기 메서드가 아닙니다.

누군가 나를 도울 수 있습니까?! 코드는 다음과 같습니다.

- (void)drawRect:(CGRect)rect 
{ 

    UIScrollView *scroll = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 436)]; 

    UIView *detailsView = [[UIView alloc] init]; 

// I have other components here and after the UIButton 

    UIButton *btnOpenPDF = [UIButton buttonWithType:UIButtonTypeCustom]; 
    [btnOpenPDF setBackgroundImage:[UIImage imageNamed:@"btnVisualizarPdf"] forState:UIControlStateNormal]; 
    [btnOpenPDF setFrame:CGRectMake(35, totalHeight, 249, 30)]; 
    btnOpenPDF.userInteractionEnabled = YES; 
    [btnOpenPDF addTarget:self action:@selector(openPdf:) forControlEvents:UIControlEventTouchDown]; 

    [detailsView addSubview:btnOpenPDF]; 

    [scroll addSubview:detailsView]; 

    [self addSubview:scroll]; 

} 

위 코드는 -loadView() 메소드를 통해 UIViewController를 통해 호출되는 UIView 내부에 있습니다.

- (IBAction)openPdf:(id)sender{ 
// Creates an instance of a UIWebView 
    UIWebView *aWebView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 320,450)]; 

// Sets the scale of web content the first time it is displayed in a web view 
    aWebView.scalesPageToFit = YES; 
    [aWebView setDelegate:self]; 

//Create a URL object. 
    NSURL *urlString = [NSURL URLWithString:[NSString stringWithFormat:@"http://portalarp.com.br/portal/%@",[[[[[[[delegateFunctions products] objectAtIndex:[delegateFunctions selectedProductIndex]] objectForKey:@"ata"] objectForKey:@"nm_arquivo"] objectForKey:@"text"] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] stringByReplacingOccurrencesOfString:@"\t" withString:@""]]]; 

//URL Requst Object 
    NSURLRequest *requestObj = [NSURLRequest requestWithURL:urlString]; 

//load the URL into the web view. 
    [aWebView loadRequest:requestObj]; 

    [self addSubview:aWebView]; 
    [aWebView release]; 
} 
+0

는 당신에게 이벤트 "UIControlEventTouchDown"확실하거나 당신이로 눌러보십시오 평소 "UIControlEventTouchUpInside"?? –

+0

UIControlEventTouchDown을 사용하고 있습니다. 왜냐하면 다른 게시물에서 누군가를 위해 일한 것을 보았습니다 ... 그러나 둘 다 사용하여도 여전히 작동하지 않습니다. – CainaSouza

+0

"여전히 작동하지 않음"이란 무엇을 의미합니까? 버튼이 강조 표시되어 있지 않거나 선택자가 전혀 호출하지 않습니다. –

답변

3

내가 .. 문제가있는 ScrollView 생각하면 다음을 수행하려고 .. 터치 이벤트를 전달하지 않습니다 ..

scroll.userInteractionEnabled = YES; 
scroll.exclusiveTouch = YES; 
+0

Unfortunatelly 그것은 또한 작동하지 않았다. 매우 이상한이 단추의 동작 ... – CainaSouza

+1

보기에 추가하지 않고 scrollView에 직접 단추를 추가하려고 했습니까? –

+1

scrollView에 직접 버튼을 추가하면 효과적입니다! 감사합니다. – CainaSouza

7

drawRect이 코드를 넣어 이상한 장소 :

다음은 메소드 openPdf입니다. 보기를 그리기 위해 호출되었으며 아마도 많이 호출 될 수 있습니다.보기를 작성해서는 안됩니다. 예를 들어, 버튼을 터치 할 때 drawRect이 호출 될 수 있습니다 (다시 그리기 위해)

UIView에있는 경우 init이이 코드를 삽입하는 데 더 좋은 장소입니다.

+0

init 메소드에 코드를 추가하는 경우에도 버튼을 클릭 할 수 없다. – CainaSouza

+0

아무 일도 일어나지 않습니까? 충돌, 예외 등? 'openPdf :'에 대한 선언을 보여줍니다. –

+0

또한 drawRect에서 모든 뷰 코드를 가져 왔습니다. drawRect에 남아있는 것이 있습니까? 당신이 내장 된 것들의 구성이 아닌 커스텀 뷰를 필요로하지 않는다면 아마도 안된다. –

관련 문제