사용자 지정 이미지로 UIBarButtonItem을 만들고 싶지만 내 이미지에 특수 테두리가 있으므로 iPhone이 추가하는 테두리를 원하지 않습니다.
뒤로 버튼과 동일하지만 앞으로 버튼입니다.
이 앱은 사내 프로젝트 용이므로 Apple이 거부하거나 승인하거나 좋아하든 상관 없습니다 :-)
UIBarButtonItem의 initWithCustomView : v 속성을 사용하면 다음과 같이 할 수 있습니다.
UIImage *image = [UIImage imageNamed:@"right.png"];
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setBackgroundImage: [image stretchableImageWithLeftCapWidth:7.0 topCapHeight:0.0] forState:UIControlStateNormal];
[button setBackgroundImage: [[UIImage imageNamed: @"right_clicked.png"] stretchableImageWithLeftCapWidth:7.0 topCapHeight:0.0] forState:UIControlStateHighlighted];
button.frame= CGRectMake(0.0, 0.0, image.size.width, image.size.height);
[button addTarget:self action:@selector(AcceptData) forControlEvents:UIControlEventTouchUpInside];
UIView *v=[[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, image.size.width, image.size.height) ];
[v addSubview:button];
UIBarButtonItem *forward = [[UIBarButtonItem alloc] initWithCustomView:v];
self.navigationItem.rightBarButtonItem= forward;
[v release];
[image release];
작동하지만 10 개의 뷰에서이 과정을 반복해야한다면 DRY가 아닙니다.
나는 하위 클래스를해야한다고 생각하지만 무엇?
- NSView?
- UIBarButtonItem?
감사,
문안 인사,