具有标题的UIButtonTypeCustom的UIButton未显示为已单击

时间:2012-03-05 03:50:37

标签: iphone uibutton

我正在设置以下UIButton(在tableview单元格中),目的是让它看起来像一个可点击的URL链接

UIButton *buttonUserName = [UIButton buttonWithType:UIButtonTypeCustom];
buttonUserName.frame = CGRectMake(10, 10, 280, 20);
[buttonUserName setTitle:@"test" forState:UIControlStateNormal];
[buttonUserName setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];
[buttonUserName setEnabled:YES];
buttonUserName.userInteractionEnabled = YES;
[buttonUserName addTarget:self action:@selector(user:) forControlEvents:UIControlEventTouchUpInside];
[cell.contentView addSubview:buttonUserName];

按钮和标题确实显示,但点击它时没有点击效果(视觉上)。我错过了什么吗?

4 个答案:

答案 0 :(得分:7)

将您想要的视觉反馈设置为按钮状态UIControlStateHighlighted

例如:标题颜色

[buttonUserName setTitleColor:[UIColor redColor] forState: UIControlStateHighlighted];

和其他一些标题,背景图片,图片等。

答案 1 :(得分:1)

添加:

 [cell.contentView bringSubviewToFront:buttonUserName];

我想你将任何其他视图重叠到按钮

答案 2 :(得分:0)

尝试在其中放置一些UIAlertNSLog以查看您是否获得了点击事件。因为用户点击按钮后,事件将转到(IBAction)user:(id)sender

答案 3 :(得分:0)

您的问题分为两部分:

  1. 没有点击效果:这是因为您使用了UIButtonTypeCustom。如果要使用自定义按钮,则应为该按钮提供图像。否则你应该使用UIButtonTypeRoundedRect,你将获得该点击效果。
  2. 正如Srikar指出的那样,在user:方法中添加一些警告,你就可以看到正在执行的代码。
  3. 希望有所帮助!