iphone – UIButton作为UINavigationbar按钮
发布时间:2020-12-14 19:59:05 所属栏目:百科 来源:网络整理
导读:我有一个Tab栏应用程序.在其中一个标签栏中,我有一个导航控制器. 我试图设置一个UIButton与图像作为导航栏的右键. UIButton *refreshButton = [[UIButton alloc] init]; [refreshButton setImage:[UIImage imageNamed:@"refresh_icon.png"] forState:UIContr
我有一个Tab栏应用程序.在其中一个标签栏中,我有一个导航控制器.
我试图设置一个UIButton与图像作为导航栏的右键. UIButton *refreshButton = [[UIButton alloc] init]; [refreshButton setImage:[UIImage imageNamed:@"refresh_icon.png"] forState:UIControlStateNormal]; [refreshButton addTarget:self action:@selector(refreshSection) forControlEvents:UIControlEventTouchUpInside]; UIBarButtonItem *rightButton = [[UIBarButtonItem alloc] initWithCustomView:refreshButton]; //[rightButton setImage:[UIImage imageNamed:@"refresh_icon.png"]]; << DOESN'T WORK EITHER self.navigationItem.rightBarButtonItem = rightButton; [refreshButton release]; [rightButton release]; 但图像没有显示出来.我得到一个隐形按钮. 编辑: 解决方法
您不必创建UIButton并将其用作UIBarButtonItem中的自定义视图.您可以直接使用图像创建UIBarButtonItem:
UIImage *myImage = [UIImage imageNamed:@"myImage.png"]; UIBarButtonItem *button = [[UIBarButtonItem alloc] initWithImage:myImage style:UIBarButtonItemStyleBordered target:self action:@selector(refreshSection)]; self.navigationItem.rightBarButtonItem = button; [button release]; – 根据评论更新 在UIBarButtonItem中使用UIImageView作为自定义视图: UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"myImage.png"]]; UIBarButtonItem *rightButton = [[UIBarButtonItem alloc] initWithCustomView:imageView]; self.navigationItem.rightBarButtonItem = rightButton; [imageView release]; [rightButton release]; – 更新 尝试了最后一种方法,虽然这看起来像你想要它,我似乎无法让它来处理水龙头.虽然目标和行动已经确定. – 最后更新 我已经在问题中获得了您的初始代码&运行.图像未显示的原因是因为您尚未设置按钮的框架.设置框架后,图像将显示在导航栏中. 这是我使用过的片段&测试: UIImage *myImage = [UIImage imageNamed:@"paw.png"]; UIButton *myButton = [UIButton buttonWithType:UIButtonTypeCustom]; [myButton setImage:myImage forState:UIControlStateNormal]; myButton.showsTouchWhenHighlighted = YES; myButton.frame = CGRectMake(0.0,0.0,myImage.size.width,myImage.size.height); [myButton addTarget:self action:@selector(tapped:) forControlEvents:UIControlEventTouchUpInside]; UIBarButtonItem *rightButton = [[UIBarButtonItem alloc] initWithCustomView:myButton]; self.navigationItem.rightBarButtonItem = rightButton; [rightButton release]; [myButton release]; 注意:我已经设置了UIButton的showsTouchWhenHighlighted属性,以便在按下按钮时可视地高亮显示该按钮. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |