문제

나는 가장 좋아하는 이미지가 있습니다 UIBarButtonItem, 도구 모음에서.

이 항목이 선택되지 않거나 선택 될 때 변경하려면 어떻게해야합니까? 이 스크린 샷처럼 :

enter image description here

감사!

도움이 되었습니까?

해결책

Uibarbuttonitems로 두 개의 배열을 만들 수 있습니다. 하나는 첫 번째 이미지와 하나는 두 번째 이미지가 있습니다. 이와 같이:

// array with unselected
UIBarButtonItem *unselectedItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"icon_unselected.png"] style:UIBarButtonItemStyleBordered target:self action:@selector(doStuff:)];
self.itemsWithUnselected = [NSArray arrayWithObject:unselectedItem]; // declared as NSArray*
[unselectedItem release];

// array with selected
UIBarButtonItem *selectedItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"icon_selected.png"] style:UIBarButtonItemStyleBordered target:self action:@selector(doStuff:)];
self.itemsWithSelected = [NSArray arrayWithObject:selectedItem]; // declared as NSArray*
[selectedItem release];

그런 다음 두 툴바 항목 세트를 다음과 같이 전환하십시오.

toolbar.items = self.itemsWithSelected; // or self.itemsWithUnselected

도구 모음에 단 하나의 버튼 만있는 경우 나머지 항목을 두 배열에 추가하십시오.

다른 팁

// First create UIButton object
UIButton *btnCustom = [UIButton buttonWithType:UIButtonTypeCustom];

// Set Frame because without frame your button can not be shown on navigation bar
[btnCustom setFrame:CGRectMake(0.0, 0.0, 20.0, 20.0)];

// Set unselected image
[btnCustom setImage:[UIImage imageNamed:@"YOUR_IMAGE_NAME_UNSELECTED"] forState:UIControlStateNormal];

// set selected image
[btnCustom setImage:[UIImage imageNamed:@"YOUR_IMAGE_NAME_SELECTED"] forState:UIControlStateSelected];

// set action method
[btnCustom addTarget:self action:@selector(btnCustom_click:) forControlEvents:UIControlEventTouchUpInside];


UIBarButtonItem *btnCustomBar = [[UIBarButtonItem alloc]initWithCustomView:btnCustom];

[self.navigationItem setRightBarButtonItem:btnCustomBar];

// action Method

- (IBAction)btnCustom_click:(id)sender
{
   if(![sender isSelected])
       [sender setSelected:YES];
   else
       [sender setSelected:NO];
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top