gpt4 book ai didi

iphone - tableFooterView 上的 UIButtons 不响应事件

转载 作者:行者123 更新时间:2023-12-03 19:38:21 25 4
gpt4 key购买 nike

我已成功将一些 UIButton 添加到自定义 tableFooterView 中。问题是按钮事件没有被调用。此外,相对于 UIControlStateHighlighted 的图像不会出现。有任何想法吗?我已经尝试了所有我能想到的方法,但我找不到窍门。我在这里报告 UITableViewController 的有趣部分:

- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection: (NSInteger)section 
{
CGRect footerFrame = CGRectMake(0.0, 0.0, 480, 190);
_footerView = [[UIImageView alloc] initWithFrame: footerFrame];
_footerView.image = [UIImage imageNamed:@"tableviewfooter.png"];
_footerView.contentMode = UIViewContentModeTopLeft;

UIButton *addExam = [self createButtonWithFrame: CGRectMake(10, 30, 460, 58) Target: self Selector: @selector(addNewItem:) Image: @"additem.png" ImagePressed: @"additem_pressed.png"];
[_footerView addSubview:addExam];

return _footerView;
}

- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection: (NSInteger) section
{
return 190;
}


- (void) addNewItem:(id)sender
{
// This get's never called
NSLog(@"Pressed");
}


- (UIButton*) createButtonWithFrame: (CGRect) frame Target:(id)target Selector:(SEL)selector Image:(NSString *)image ImagePressed:(NSString *)imagePressed
{
UIButton *button = [[UIButton alloc] initWithFrame:frame];

UIImage *newImage = [UIImage imageNamed: image];
[button setBackgroundImage:newImage forState:UIControlStateNormal];

UIImage *newPressedImage = [UIImage imageNamed: imagePressed];
[button setBackgroundImage:newPressedImage forState:UIControlStateHighlighted];

[button addTarget:target action:selector forControlEvents:UIControlEventTouchUpInside];

return button;
}

感谢您的帮助!

最佳答案

我认为 UIImageView 的设计不能很好地用作其他 View 的容器,尤其是 UIButtons。首先,UIImageView 在创建时具有其 userInteractionsEnabled属性默认设置为 false

我只需创建一个简单的 UIView 作为页脚 View ,然后将 UIButtonUIImageView 直接添加到其中。

关于iphone - tableFooterView 上的 UIButtons 不响应事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1122272/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com