이 테스트 컨트롤러에서 사례를 재현했습니다. 뷰 영역에 속하는 UIButton이 TouchUpInside 이벤트를 성공적으로 트리거합니다. 어쩌면 당신은 자신의 코드와 비교하고 그 차이를 볼 수 있습니다. (포함 진술은 생략되었습니다)
public class ScrollController : UIViewController
{
UIScrollView scroll;
List<UIButton> buttons;
public override void ViewDidLoad()
{
base.ViewDidLoad();
scroll = new UIScrollView();
scroll.Frame = View.Bounds;
View.AddSubview(scroll);
scroll.ContentSize = new SizeF(0, 1000);
buttons = new List<UIButton>();
for(int i = 0; i < 10; i++)
{
var button = CreateButton(i * 75, i.ToString());
buttons.Add(button);
scroll.AddSubview(button);
}
}
UIButton CreateButton(float y, string title)
{
var button = UIButton.FromType(UIButtonType.RoundedRect);
button.SetTitle(title, UIControlState.Normal);
button.Frame = new System.Drawing.RectangleF(0, y, 200, 50);
button.TouchUpInside += HandleButtonTouchUpInside;
return button;
}
void HandleButtonTouchUpInside (object sender, EventArgs e)
{
var button = sender as UIButton;
Console.WriteLine("{0} touched", button.Title(UIControlState.Normal));
}
}
몇 가지 예제 코드가 유용 할 것입니다. –
버튼 모양이 바뀌 었습니까? 아마 그들은 이벤트를 얻지 못하고있다. 상호 작용 요소는 이벤트 처리를 복잡하게 만들 수 있으므로 항상 스크롤 막대에서 제외시키는 것이 가장 좋습니다. –