【发布时间】:2014-09-05 15:00:13
【问题描述】:
您好,我正在使用以下代码在我的应用中制作 customUIButtons。
+ (NSArray *) createButtonItemNormalImage:(UIImage *)normalImage
highlightImage:(UIImage *)highlightImage
disabledImage:(UIImage *)disabledImage
touchUpSelector:(SEL)selector
target:(id)target
{
// HighlightImage is not used. Highlight is shown using iOS glow
UIButton *uiButton = [UIButton buttonWithType:UIButtonTypeCustom];
uiButton.bounds = CGRectMake(0,
0,
normalImage.size.width,
normalImage.size.height);
[uiButton setImage:normalImage
forState:UIControlStateNormal];
if (disabledImage)
{
[uiButton setImage:disabledImage
forState:UIControlStateDisabled];
}
[uiButton addTarget:target
action:selector
forControlEvents:UIControlEventTouchUpInside];
uiButton.showsTouchWhenHighlighted = YES;
UIBarButtonItem *buttonItem = [[UIBarButtonItem alloc] initWithCustomView:uiButton];
return [NSArray arrayWithObjects:buttonItem, uiButton, nil];
}
我使用上述功能制作了一个取消按钮。取消按钮将用户从一个屏幕带到另一个屏幕。问题是当我回到第一个屏幕时,取消按钮仍然发光。我以前也看到过这个问题,但曾经打电话给[self.view setNeedsLayout] 来解决它。
为什么会发生这种情况以及解决它的正确方法是什么? 谢谢!
【问题讨论】:
-
uiButton.showsTouchWhenHighlighted = YES; TO uiButton.showsTouchWhenHighlighted = NO;
-
@DarshanKunjadiya 我希望按钮只有在被触摸时才会发光。设置 uiButton.showsTouchWhenHighlighted = NO 将使按钮根本不发光。问题是即使不被触摸它也会发光。
-
我在视图上只有六个按钮之一时遇到了同样的问题。所有六个配置相同,但由于某种原因,其中只有一个在被触摸后无法“发光”。非常令人沮丧。我已经多次重新生成有问题的按钮,但似乎没有任何解决问题的方法。
标签: ios objective-c ios7 uibutton