Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/106.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 如何在iOS中显示大按钮而不单击按钮(单击按钮周围的区域)_Iphone_Ios_Uibutton_Uitapgesturerecognizer - Fatal编程技术网

Iphone 如何在iOS中显示大按钮而不单击按钮(单击按钮周围的区域)

Iphone 如何在iOS中显示大按钮而不单击按钮(单击按钮周围的区域),iphone,ios,uibutton,uitapgesturerecognizer,Iphone,Ios,Uibutton,Uitapgesturerecognizer,我为键盘做了许多按钮。当我单击一个按钮时,它显示为大按钮。不点击按钮,它能显示为大按钮吗?(如iPhone)你能给出一些示例代码吗 就像你在这张图片中看到的(默认的),我只需点击near/around按钮,而不是直接点击按钮,但它在文本字段中显示字母!如何设置按钮周围区域的条件 您是指在突出显示的按钮上方显示较大的按钮图像,如键盘 如果是这样,我将研究设置uicontrol状态触地的操作,以查看按钮何时高亮显示,并最终在按下的按钮顶部添加较大的按钮图像。然后,添加uicontrolStateTo

我为键盘做了许多按钮。当我单击一个按钮时,它显示为大按钮。不点击按钮,它能显示为大按钮吗?(如iPhone)你能给出一些示例代码吗

就像你在这张图片中看到的(默认的),我只需点击near/around按钮,而不是直接点击按钮,但它在文本字段中显示字母!如何设置按钮周围区域的条件


您是指在突出显示的按钮上方显示较大的按钮图像,如键盘

如果是这样,我将研究设置uicontrol状态触地的操作,以查看按钮何时高亮显示,并最终在按下的按钮顶部添加较大的按钮图像。然后,添加uicontrolStateToughupInside、uicontrolStateToughupOutside和uicontrolStateToughCancel的操作以删除较大的按钮图像


要跟踪较大的按钮图像,可以使用属性并跟踪它。我建议将UIButton子类化,我认为您正在为按钮使用UIButton,并为其较大的按钮图像添加一个属性,以便较大的按钮图像绑定到其上方的按钮。

您的帖子不太清楚,但我相信您正在尝试复制
UIKeyboard
的按钮缩放功能

如果是这种情况,那么这里有两个简单的步骤来实现这一点

为控制状态“内部触碰”和“触碰”按钮添加自定义操作。 我可能会在
viewdideappear
中执行此操作,以便在所有操作都完成到位之前不会干扰运行循环。也许稍微延迟一下就可以了。在如下所示的循环中执行此操作将允许您自动将这些操作添加到主视图的子视图数组中类“UIButton”的每个对象中

    for (UIButton *button in self.view.subviews) {
    if ([button isKindOfClass:[UIButton class]]) {
        [button addTarget:self action:@selector(anyButtonDown:) forControlEvents:UIControlEventTouchDown];
        [button addTarget:self action:@selector(anyButtonUp:) forControlEvents:UIControlEventTouchUpInside];
    }
}
我们将使用向下触动的方法来缩放按钮,并在内部触动以使按钮返回其原始状态,然后将按钮文本值附加到文本字段的末尾

在本例中,我使用了
UILabel

- (void)anyButtonUp:(UIButton *)sender
{
    [UIView animateWithDuration:0.1 animations:^{
        [sender setTransform:CGAffineTransformConcat(CGAffineTransformMakeScale(1.0, 1.0), CGAffineTransformMakeTranslation(0, 0))];
    }completion:^(BOOL done){
        [textLabel setText:[textLabel.text stringByAppendingString:sender.titleLabel.text]];
    }];
}
注意,在这些方法中,我们使用
UIButton
作为参数,这样就可以转换调用此操作的按钮的转换,而无需为每个按钮创建操作

- (void)anyButtonDown:(UIButton *)sender
{
    [self.view bringSubviewToFront:sender];
    [UIView animateWithDuration:0.1 animations:^{
        [sender setTransform:CGAffineTransformConcat(CGAffineTransformMakeScale(1.3, 1.3), CGAffineTransformMakeTranslation(0, -25))];
    }];
}
在这里,当释放按钮时,我们将“发送者”的变换调整回其原始变换。此动画是使用完成处理程序创建的,以允许在将按钮设置回其原始状态的动画完成时,将为该按钮指定的文本附加到当前位于标签中的文本的末尾

注意:为了使此功能正常工作,我假设您输入了按钮表示为按钮的
文本标签的字母

- (void)anyButtonUp:(UIButton *)sender
{
    [UIView animateWithDuration:0.1 animations:^{
        [sender setTransform:CGAffineTransformConcat(CGAffineTransformMakeScale(1.0, 1.0), CGAffineTransformMakeTranslation(0, 0))];
    }completion:^(BOOL done){
        [textLabel setText:[textLabel.text stringByAppendingString:sender.titleLabel.text]];
    }];
}

我不确定我是否理解你在做什么,请加上一些图片和更好的描述。你能澄清一点吗?你说的是文本键盘吗?你可以在上图中看到,我没有直接点击它!除了uicontrolStateToughUpInside、uicontrolStateToughDown之外,我们还可以使用什么来了解触摸区域?您还不清楚什么?我怀疑若我提供代码,你们会更清楚。对于默认键盘,如何禁用键(不显示在大按钮中)?