Пользовательский UIView не работает в Xamarin

Я пытаюсь создать подкласс UIView с помощью Xamarin, но, похоже, не получаю ожидаемых результатов. Для простоты у меня есть следующий класс:

using System;
using CoreGraphics;
using Foundation;
using UIKit;

namespace ExerciseTracker.iOS.Views
{
    [Register("CustomView")]
    public class CustomView : UIView
    {
        public override void Draw(CGRect rect)
        {
            base.Draw(rect);
        }
    }
}

Точка останова установлена ​​на строке base.Draw(rect);. В моем макете раскадровки существует представление с классом, установленным на CustomView.

введите здесь описание изображения

Однако, когда приложение запущено и отображается страница, точка останова никогда не срабатывает, а точка останова отображается так, как будто она никогда не сработает.

введите здесь описание изображения

Это использует Visual Studio для Mac v7.1.5. Есть ли что-то, что мне здесь не хватает? Кажется, это должно быть довольно просто, но я застрял на этом несколько часов.


person Darren Oster    schedule 25.09.2017    source источник


Ответы (1)


Вам нужно добавить конструкцию с параметром IntPtr в класс CustomView, например:

public CustomView(IntPtr p): base(p)
{
    //Your initialization code.
}

Затем этот класс можно использовать непосредственно в раскадровке.

Дополнительные сведения можно найти в официальной документации Xamarin: Пошаговое руководство. конструктор Xamarin для iOS.

person Kevin Li    schedule 26.09.2017
comment
Я думал, что пробовал это раньше безуспешно, но каким-то образом сегодня вечером я получил второй частичный файл designer, в котором был этот конструктор, а также метод ReleaseDesignerOutlets(). Не знаю почему, но сейчас это работает, и я не осмеливаюсь экспериментировать на данном этапе. - person Darren Oster; 26.09.2017