我有一个UICollectionView,其中每个UICollectionViewCell都有一个UIButton作为子视图 . UIButtons响应点击没有问题(他们的目标被触发),但按钮本身不会更改为选定状态(按钮的外观没有变化) . 我有一个预感,因为UICollectionViewCell没有正确地将其触摸事件转发到按钮,但我不确定 . 即使是这样,我该如何设置,以便按钮的状态在这种情况下正常变化?
UIScrollview (因此也是 UICollectionView )也有一个名为 delaysContentTouches 的属性,默认情况下它设置为YES,将其更改为NO并且您的按钮应该突出显示它应该如此 .
UIScrollview
UICollectionView
delaysContentTouches
如果我可以建议一个替代方案,UICollectionView有一个很棒的委托方法调用
- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath { }
可以处理单击该单元格的单击...如果您正在寻找特定事件发生,例如看到图像更改为按钮状态,您可以在......按下按钮做一件事时硬编码,当他们释放按钮做另一件事....
根据文件也是如此
UIControlStateSelected控件的选定状态 . 对于许多控件,此状态对行为或外观没有影响 . 但是其他子类(例如,UISegmentedControl类)可能具有不同的外观,具体取决于其选择的状态 . 您可以通过selected属性检索和设置此值 .
对于一个UIButton来说,“选定国家”什么都不做......
如果按钮在点击时被假定为昏暗并且它没有这样做,那么你可能必须以编程方式进行,如果,但我不确定你要做什么...
调光功能处于突出显示状态
UIControlStateHighlighted控件的突出显示状态 . 当跟踪期间触摸进入和退出以及有触摸事件时,控件进入此状态 . 您可以通过突出显示的属性检索和设置此值 .
在非专业术语中,您触摸突出显示的按钮
要查看按钮是否正确更改状态,您可以执行此类操作
[button addTarget:self action:@selector(functionToCall:) forControlEvents:UIControlEventAllTouchEvents]; NSLog(@"Selected: %i", button.selected); NSLog(@"Highlighted: %i", button.highlighted); NSLog(@"Normal State or not: %i", button.state);
当按钮发生任何类型的触摸时,将调用“functionToCall”,并且在该功能中你可以使用那3个NSLog,它们将向你的控制台输出不同的UIControlState值,这将显示按钮工作正常并显示它可能是一个UIViewCollection错误,如果它是UICollectionView ...那么你将不得不以编程方式调暗按钮:3
希望这可以帮助 !
2 回答
UIScrollview
(因此也是UICollectionView
)也有一个名为delaysContentTouches
的属性,默认情况下它设置为YES,将其更改为NO并且您的按钮应该突出显示它应该如此 .如果我可以建议一个替代方案,UICollectionView有一个很棒的委托方法调用
可以处理单击该单元格的单击...如果您正在寻找特定事件发生,例如看到图像更改为按钮状态,您可以在......按下按钮做一件事时硬编码,当他们释放按钮做另一件事....
根据文件也是如此
UIControlStateSelected控件的选定状态 . 对于许多控件,此状态对行为或外观没有影响 . 但是其他子类(例如,UISegmentedControl类)可能具有不同的外观,具体取决于其选择的状态 . 您可以通过selected属性检索和设置此值 .
对于一个UIButton来说,“选定国家”什么都不做......
如果按钮在点击时被假定为昏暗并且它没有这样做,那么你可能必须以编程方式进行,如果,但我不确定你要做什么...
调光功能处于突出显示状态
UIControlStateHighlighted控件的突出显示状态 . 当跟踪期间触摸进入和退出以及有触摸事件时,控件进入此状态 . 您可以通过突出显示的属性检索和设置此值 .
在非专业术语中,您触摸突出显示的按钮
要查看按钮是否正确更改状态,您可以执行此类操作
当按钮发生任何类型的触摸时,将调用“functionToCall”,并且在该功能中你可以使用那3个NSLog,它们将向你的控制台输出不同的UIControlState值,这将显示按钮工作正常并显示它可能是一个UIViewCollection错误,如果它是UICollectionView ...那么你将不得不以编程方式调暗按钮:3
希望这可以帮助 !