iOS2012. 9. 4. 15:45

*1번째 간단한 방법(Action 버튼 생성)*
장점 : 상당히 쉽게 만들수 있음.
단점 : 버튼이 터치되는 영역이 실제 버튼보다 훨 씬 넓음.

UIBarButtonItem *composerBtn =[[UIBarButtonItem allocinitWithBarButtonSystemItem:UIBarButtonSystemItemAction target:selfaction:@selector(composerMethode)];


*2번째 방법 : 시스템아이템 버튼이 아닌 임의의 이미지를 이용하여 버튼 구성 방법*

장점 : 버튼의 외각 이미지 + 내부 추가한 이미지(i.png)표현 가능.
단점 : 버튼이 터치되는 영역이 실제 버튼보다 훨 씬 넓음.


UIImage *image = [UIImage imageNamed:@"i.png"];

image = [UIImage imageWithCGImage:[image CGImagescale:2.0 orientation:UIImageOrientationUp];

UIBarButtonItem *editButton = [[UIBarButtonItem alloc

                                       initWithImage:image style:UIBarButtonItemStylePlain target:self action:@selector(editDB)];

        

self.navigationItem.leftBarButtonItem = editButton;


*3.번째 방법 : 임의의 뷰에 UIButton을 추가하여 구성하는 방법*
목적 : 1번째,2번째 방법의 단점을 해결하고자 함.
장점 : 정확히 버튼의 크기만큼만 터치가 됨.
단점 : 시스템에 있는 버튼아이템이미지 사용 불가. , 버튼의 외각 이미지 표현 불가.

            UIView *rightview = [[UIView allocinitWithFrame:CGRectMake(0,0,25,20)];

            

            UIButton *searchbutton = [[UIButton allocinitWithFrame:CGRectMake(0,0,2520)];


            UIImage *image = [UIImage imageNamed:@"action.png"];

            image = [UIImage imageWithCGImage:[image CGImagescale:1.0 orientation:UIImageOrientationUp];

            

            [searchbutton setImage:image forStateUIControlStateNormal];


            [searchbutton addTarget:self action:@selector(composerMethode) forControlEvents:UIControlEventTouchUpInside];

            [rightview addSubview:searchbutton];

            [searchbutton release];

            

            UIBarButtonItem *composerBtn = [[UIBarButtonItem allocinitWithCustomView:rightview];

            [rightview release];

Posted by 다오나무