如何解决如何自定义UITabBar-选择选项卡时如何更改所选选项卡的图像
|| 选择选项卡栏时如何更改图像。帮帮我,谢谢。解决方法
您可以在此处找到有关如何创建自定义标签栏的信息
http://www.rumexit.co.uk/2010/07/how-to-customise-the-tab-bar-uitabbar-in-an-iphone-application-part-1-of-2/
您可以按照以下代码设置图像和为UIControlStateNormal和UIControlStateSelected选择的图像
UIImage *btnImage = [UIImage imageNamed:@\"Button_Normal.png\"];
UIImage *btnImageSelected = [UIImage imageNamed:@\"Bouton_Selected.png\"];
self.bouton_tab = [UIButton buttonWithType:UIButtonTypeCustom]; //Setup the button
bouton_tab.frame = CGRectMake(xStart,TABYSTART,TABITEMWIDTH,TABITEMHEIGHT); // Set the frame (size and position) of the button)
[bouton_tab setBackgroundImage:btnImage forState:UIControlStateNormal]; // Set the image for the normal state of the button
[bouton_tab setBackgroundImage:btnImageSelected forState:UIControlStateSelected]; // Set the image for the selected state of the button
[bouton_tab setTag:0]; // Assign the button a \"tag\" so when our \"click\" event is called we know which button was pressed.
[bouton_tab setSelected:true]; // Set this button as selected (we will select the others to false as we only want Tab 1 to be selected initially
希望对您有帮助:)
, 您可以使用UITabBarControllerDelegate方法
-(void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
if(tabBarController.selectedIndex==0)
{
[viewController.tabBarItem setImage:[UIImage imageNamed:@\"home.png\"]];
}
}
在appDelegate.m文件中使用此代码
并在appDelegate.h文件中添加协议
, 您可以制作一个自定义标签栏:
1.创建标签栏视图控制器
2.在此VC中放入以下方法:
-(void) addCenterButtonWithImage:(UIImage*)buttonImage highlightImage:(UIImage*)highlightImage
{
self.button = [UIButton buttonWithType:UIButtonTypeCustom];
self.button.autoresizingMask = UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleTopMargin;
self.button.frame = CGRectMake(0.0,0.0,buttonImage.size.width,buttonImage.size.height);
[self.button setBackgroundImage:buttonImage forState:UIControlStateNormal];
[self.button setBackgroundImage:highlightImage forState:UIControlStateHighlighted];
self.button.center = self.tabBar.center;
[self.view addSubview: self.button];
}
在标签栏控制器viewDidLoad
中以这种方式调用此方法:
- (void)viewDidLoad
{
[self addCenterButtonWithImage:[UIImage imageNamed:@\"bemobile.png\"] highlightImage:[UIImage imageNamed:@\"bemobileSelected.png\"]];
[super viewDidLoad];
}
在highlightImage
中,您传递在选择该选项卡栏项目时将显示的图像的位置
, 我认为您需要尝试这一方法,希望对您有所帮助,
我已经更改了所选的tabbatitem图片,例如-
在Tabbar Controller委托方法中
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
if([tabBarController selectedIndex] == 0)
{
[viewController.tabBarItem setFinishedSelectedImage:[UIImage imageNamed:@\"selected.png\"]withFinishedUnselectedImage:[UIImage imageNamed:@\"unselect.png\"]];
}
}
通过此操作,您可以更改图像。
或者,您可以直接在视图控制器中使用init(或ViewWillAppear)方法,例如
[viewController.tabBarItem setFinishedSelectedImage:[UIImage imageNamed:@\"selected.png\"]withFinishedUnselectedImage:[UIImage imageNamed:@\"unselect.png\"]];
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。