ios - 在 iOS 中忽略 TableView 标题内的按钮单击

标签 ios uitableview xamarin uibutton dialogviewcontroller

我正在制作带有自定义页眉的 TableView。在自定义 header 中,我有 1 个 ImageView、2 个 UILabel 和 1 个 UIButton。当我在 UIButton 上设置 TouchUpInSide 事件时,它不会触发。

我在 SO 和谷歌上看到很多帖子,但没有任何帮助。

这里是我尝试过的:

1). Swift - Custom TableView Not Executing Click on UIButton

2). UIButton in UITableView tableHeaderView not responding to touches

3). UIButton in a UITableView header ignores most touches

这是我的自定义 header 代码。

代码:

public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            TableView.Frame = new RectangleF((float)TableView.Frame.Left, 130, (float)TableView.Frame.Width, (float)(View.Frame.Size.Height - 130));
            headerView = new UIView();
            headerView.Frame = new CoreGraphics.CGRect(0, 0, TableView.Frame.Width, 140);

            UIImageView backgroundImage = new UIImageView();
            backgroundImage.Image = UIImage.FromFile("drawerbg");
            backgroundImage.Frame = new CoreGraphics.CGRect(0, 0, TableView.Frame.Width, 140);
            headerView.AddSubview(backgroundImage);

            profileImage = new UIImageView();
            profileImage.Frame = new CoreGraphics.CGRect(10, 10, 70, 70);
            profileImage.Layer.CornerRadius = 35;
            profileImage.ClipsToBounds = true;
            profileImage.Image = UIImage.FromBundle("default_user");
            backgroundImage.AddSubview(profileImage);

            userName = new UILabel();
            userName.Frame = new CoreGraphics.CGRect(10, 90, TableView.Frame.Width - 20, 20);
            userName.Font = GargiFontAndSize.B14();
            userName.TextColor = UIColor.White;
            backgroundImage.AddSubview(userName);

            userOrganization = new UILabel();
            userOrganization.Frame = new CoreGraphics.CGRect(10, 110, TableView.Frame.Width - 50, 20);
            userOrganization.Font = GargiFontAndSize.B14();
            userOrganization.TextColor = UIColor.White;
            userOrganization.Text = "Organizaton";
            backgroundImage.AddSubview(userOrganization);

            organizationArrowButton = new UIButton();
            organizationArrowButton.Frame = new CoreGraphics.CGRect(260, 110, 20, 20);
            organizationArrowButton.SetImage(UIImage.FromBundle("sort_down"), UIControlState.Normal);
            organizationArrowButton.UserInteractionEnabled = true;
            organizationArrowButton.ClipsToBounds = false;
            backgroundImage.AddSubview(organizationArrowButton);
            organizationArrowButton.BringSubviewToFront(headerView);


            TableView.SectionHeaderHeight = 0;
            TableView.SectionFooterHeight = 0;


            var gradient = new CAGradientLayer();
            gradient.Frame = headerView.Frame;
            gradient.Colors = new CoreGraphics.CGColor[] { GargiColor.PrimaryColor().CGColor, GargiColor.SecondaryColor().CGColor };
            headerView.Layer.InsertSublayer(gradient, 0);

            TableView.TableHeaderView = headerView;

}

还有一件事我的 viewController 是扩展 DialogViewController。

任何帮助将不胜感激..

最佳答案

UIImageView 的 userInteraction 默认是禁用的,如果你要添加按钮到 ImageView ,将 UIImageView 的 userInteractionEnabled 设置为 true。

关于ios - 在 iOS 中忽略 TableView 标题内的按钮单击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47712258/

相关文章:

ios - 我在哪里注销 NSNotification?

ios - 在进行许多计划更改的开发时使用核心数据

ios - AVCaptureVideoPreviewLayer 从视频切换并以静态图像模式捕获图像时的延迟

ios - 检测 UITableView 部分标题是否 float

xamarin - 如何将 Xamarin.Forms 更新到最新版本?

ios - ARKit 2 中的场景切换

ios - UITableViewCell 行高缩小至默认 44 像素 (iOS 8)

objective-c - 当再次滚动表格 View 时,单元格显示为空白?

ios - Facebook SDK : AccessToken. CurrentAccessToken 始终为空,即使在登录后也是如此

c# - XAMARIN - 从 youtube 添加视频