iphone - 单击时如何使按钮变亮(如单击 iphone 中的 shift 键)

标签 iphone ios uibutton uikeyboard

我想做一个shift键。当我点击它时, key 会变成其他字母。像在 iphone 中单击此 shift 按钮时,如何使它变亮?你能给出一些示例代码吗?

最佳答案

如果您希望按钮的图像在点击时改变,然后返回,您可以使用 -[setImage:forState:] 方法。对于此示例,假设您有 2 张图像:image_one.png 和 image_two.png 分别用于未按下和按下的图像。

假设你有一个像这样的按钮:

UIButton *button = [[UIButton alloc] init];
[button setFrame:CGRectMake(0, 0, 100, 44)];
[button setImage:[UIImage imageNamed:@"image_one.png"] forState:UIControlStateNormal];
[[self view] addSubview:button];

您可以添加一个目标和 Action 来来回改变图像。要查看当前是哪个图像,我会使用标记属性。

[button setTag:0]; // initial, non pressed button tag, for this example
[button addTarget:self action:@selector(swapImage:) forControlEvents:UIControlEventTouchUpInside];

在 setImage 方法中有如下内容:

-(void)swapImage:(UIButton *)sender {

    if ([sender tag] == 0) {

        [sender setTag:1]; // pressed tag, for example
        [sender setImage:[UIImage imageNamed:@"image_two.png"] forState:UIControlStateNormal];

    } else {

        [sender setTag:0]; // non-pressed tag, for example
        [sender setImage:[UIImage imageNamed:@"image_one.png"] forState:UIControlStateNormal];

    }

}

当您第一次点击按钮时,它会选择。再次点击它会取消选择它 - 就像键盘的 shift 按钮一样。

关于iphone - 单击时如何使按钮变亮(如单击 iphone 中的 shift 键),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12292231/

相关文章:

iphone - 如何让 UITableView 行高自动调整为 UITableViewCell 的大小?

iPhone图形在模拟器上工作而不是在设备上

ios - 我如何以编程方式创建一个segue?

ios - 如何根据商店为我的应用程序使用不同的名称

ios - 如何处理 UIButton 上的触摸事件和手势事件?

iphone - 将 CATextLayer 与 CGContext 一起使用

iphone - iPhone 中的翻页动画

ios - 无法检测到 ScrollView 中的 Swift UI 组件

iphone - 禁用 UIButton 直到 UITextField 中有文本

ios - 为什么这个对象在 ARC 下被过早释放?