Ваша аннотация не отображается, потому что вы забыли установить type
. Вероятно, это ошибка, потому что вы дважды устанавливаете widgetFieldType
. Вот правильная настройка виджета кнопки:
PDFAnnotation *observation = [[PDFAnnotation alloc] init];
observation.bounds = CGRectMake(20, 20, 200, 100);
observation.type = PDFAnnotationSubtypeWidget;
observation.widgetFieldType = PDFAnnotationWidgetSubtypeButton;
observation.widgetControlType = kPDFWidgetCheckBoxControl;
observation.backgroundColor = UIColor.redColor;
[page addAnnotation:observation];
Чтобы избежать ошибок, подобных этой, в будущем, используйте следующий инициализатор:
- (instancetype)initWithBounds:(CGRect)bounds
forType:(PDFAnnotationSubtype)annotationType
withProperties:(NSDictionary *)properties;
И измените код настройки на:
PDFAnnotation *observation = [[PDFAnnotation alloc] initWithBounds:CGRectMake(20, 20, 200, 100)
forType:PDFAnnotationSubtypeWidget
withProperties:nil];
observation.widgetFieldType = PDFAnnotationWidgetSubtypeButton;
observation.widgetControlType = kPDFWidgetCheckBoxControl;
observation.backgroundColor = UIColor.redColor;
[page addAnnotation:observation];
Я настоятельно рекомендую настроить внешний вид (например, backgroundColor
) в последнюю очередь. Поскольку все эти значения изменяются PDFKit при изменении типа.
Также имейте в виду, что 0, 0
- это нижний / левый угол (bounds
).