2011-08-23 5 views
5

나는 이것이 누군가를위한 쉬운 것이라고 확신합니다. 나는 버튼으로 사용하고 (하지 않도록 불쾌한 기본 버튼을 사용해야 할) 나는 다음UISegmentedControl 및 대상 추가

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view from its nib. 

    //read.buttonType = UIBarStyleBlackOpaque; 

    UISegmentedControl* read = [[[UISegmentedControl alloc] initWithFrame:CGRectMake(5, 50, 310, 54)] autorelease]; 
    [read insertSegmentWithTitle:@"Read" atIndex:0 animated:NO]; 
    read.tintColor = [UIColor colorWithRed:0.3 green:0.3 blue:0.9 alpha:1]; 
    read.segmentedControlStyle = UISegmentedControlStyleBar; 
    [read addTarget:self action:@selector(changeFilter:sender:) forControlEvents:UIControlEventTouchUpInside]; 
    [read setTag:1]; 
    [self.view addSubview:read]; 



} 

하고 다음과 같이 .... 코드를 작업 대상을 얻는 데 문제가 오전 UISegmentedControl이

-(void)changeFilter:(id)sender{ 

} 

어떤 이유로 UISegmentedControl을 클릭해도 대상 메서드가 실행되지 않습니다.

부록으로, 더 멋진 UIButtons를 만드는 더 간단한 방법이 있습니까? 직장에서 포토샵에 접근 할 수는 없지만 (김프가 설치되어 있음에도 불구하고) 이미지 작성을 포함하지 않는 방법이 좋을 것입니다. 나는 사과가 UI에서 멋진 UIButton을 제공하지 못했다고 믿을 수 없다. 필요한 근본적인 것 같다.

어쨌든, 도움 mis amigos에 감사드립니다. 지금은 다음

[read addTarget:self action:@selector(changeFilter:) forControlEvents:UIControlEventTouchUpInside]; 

@interface 
-(void)changeFilter:(id)sender; 

이 답변에 대한

덕분에 ... 나는 수정을 시도했지만 여전히

을 발생하지 않습니다

@implementation 
-(void)changeFilter:(id)sender{} 

UISegmentedControl과 같은 클래스에 있습니다. 어쩌면 제안 된 Glass button API를 사용해보아야하지만 사장님은 제 3 자 라이브러리를 사용하는 것을 피하는 방법이 있다면 제게 싫어합니다!

답변

8

셀렉터가 잘못되었습니다. action:@selector(changeFilter:)이어야하며 forControlEvents:UIControlEventValueChanged으로 변경하십시오 (예 : ). UISegmentedControlUIControlEventTouchUpInside 이벤트에 대한 작업을 보내지 않습니다.

+0

는 그 짓을했는지와는 여전히 너무 – shaw2thefloor

+0

변경 이벤트를 트리거하지. 편집 된 답변을 확인하십시오. – EmptyStack

+0

아, 그 티켓은 ... 모든 대답을위한 박수입니다. – shaw2thefloor

5

.H 파일이 유 : 다음

change this 

[read addTarget:self action:@selector(changeFilter:sender:) forControlEvents:UIControlEventTouchUpInside]; 

To 

[read addTarget:self action:@selector(changeFilter:) forControlEvents:UIControlEventValueChanged]; 
1

작업이 자동으로 (단지 @ 선택기를 시도 그래서 changeFilter를 보낸 사람을 보내드립니다이

 -(void)changeFilter:(id)sender; 

을 넣어 잊어 버렸습니다.

두 번째 질문에 대해서는 ios5가 도움이 될 것입니다. 그러나 아직 그에 대해서는 많이 말할 수 없습니다. 지금 당장 사람들이 만든 버튼 클래스를 사용하여 멋진 버튼을 쉽게 만들 수 있습니다. 여기에 하나는 다음과 같습니다

http://hboon.com/glass-buttons-in-iphone-apps-without-using-image-files/