2017-12-08 5 views
2

カスタムヘッダーでTableViewを作成しています。カスタムヘッダーには1つのImageView、2つのUILabel、1つのUIButtonがあります。 TouchUpInSideイベントをUIButtonに設定すると、UIButtonは起動しません。ボタンをクリックすると、TableViewヘッダーがiOSで無視されます

私はSOとGoogleの多くの投稿を参照してください何も私を助けている。

ここで私が試したこと:

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

ここにカスタムヘッダーのコードを示します。

コード:

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を拡張しています。

どれヘルプが理解されるであろう。..

答えて

0

UIImageViewのuserInteractionは、デフォルトでは無効になって、あなたがイメージビュー、UIImageViewをtrueにuserInteractionEnabledセットにボタンを追加しています。

+0

私はまた、上のコードでは構造体だけであるため表示しません。 – Ironman

+0

あなたのコードでは、organizationArrowButtonのuserInteractionEnabledを設定するか、backgroundImage – Van

+0

に 'backgroundImage.UserInteractionEnabled = true'を設定する必要があります。 –

関連する問題