按下button后,标题消失
我正在尝试创build一个像这样的push-on-push-off-likebutton,虽然我的代码有点不同:
UIButton* alertsButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; alertsButton.frame = CGRectMake(170, 43.5, 130, 130); [alertsButton.titleLabel setFont:[UIFont fontWithName:@"Novecento wide" size:22]]; [alertsButton setTitle:NSLocalizedString(@"Alerts", nil) forState:UIControlStateHighlighted]; [alertsButton setTitle:NSLocalizedString(@"Alerts", nil) forState:UIControlStateNormal]; [alertsButton setTitle:NSLocalizedString(@"Alerts", nil) forState:UIControlStateSelected]; [alertsButton addTarget:self action:@selector(toggleAlerts:)forControlEvents:UIControlEventTouchUpInside]; -(void)toggleAlerts:(id)sender { UIButton *button = (UIButton *)sender; if (button.selected) { button.selected = NO; [button setImage:[UIImage imageNamed:@"off.png"] forState:UIControlStateNormal]; [button.titleLabel setFont:[UIFont fontWithName:@"Novecento wide" size:22]]; NSLog(button.titleLabel.text); } else { button.selected = YES; [button setImage:[UIImage imageNamed:@"on.png"] forState:UIControlStateNormal]; [button.titleLabel setFont:[UIFont fontWithName:@"Novecento wide" size:22]]; NSLog(button.titleLabel.text); } }
当我按下button时,背景会按预期改变,但标签消失,尽pipe文本显示在debugging控制台中。 我试过这个没有结果:(
那是因为你的形象超越了你的标签。
而不是[button setImage:[UIImage imageNamed:@"on.png"] forState:UIControlStateNormal];
写[button setBackgroundImage:[UIImage imageNamed:@"on.png"] forState:UIControlStateNormal];
你的上下影像是多大?
如果他们太大,他们会把文本推出。 正如Nikita所说,如果图像应该是背景,请使用setBackgroundImage方法
- 如何存储一个MKPolyline属性作为可转换的iOS coredata与swift?
- 将时区名称转换为Xcode中的Time ID:s
- cordova应用程序(iOS)中的iframe history.back()问题
- RestKit:映射复杂嵌套的问题,需要forceCollectionMapping的多个级别
- 如何NSBundle pathForResource:ofType:和UIImage imageWithContentsOfFile:处理比例和设备修饰符?
- 展开SCNVector3 / SCNVector4值以进行打印?
- 从API的viewDidLoad,viewWillAppear或viewDidAppear加载数据是更好的地方?
- UIButton默认点击UITableViewController自定义单元格中缺少的淡入淡出动画
- 是否有可能在iOS上使oauth安全?