Нужно сделать в два этапа.
Во-первых: проанализируйте ваш pdf, чтобы найти отмеченных операторов контента
Это пример кода синтаксического анализа:
-(void)parseContent() {
CGPDFOperatorTableRef myTable;
myTable = CGPDFOperatorTableCreate();
CGPDFOperatorTableSetCallback(myTable, "BMC", &myOperator_BMC);
CGPDFContentStreamRef myContentStream = CGPDFContentStreamCreateWithPage(page);
CGPDFScannerRef myScanner = CGPDFScannerCreate(myContentStream, myTable, autoZoomAreas);
CGPDFScannerScan(myScanner);
CGPDFScannerRelease(myScanner);
CGPDFContentStreamRelease(myContentStream);
}
void myOperator_BMC(CGPDFScannerRef s, void *info)
{
const char *name;
CGPDFScannerPopName(s, &name);
}
(Вам необходимо заполнить и настроить этот код в соответствии с вашими требованиями)
Второе: ответьте на сообщение toucheEnded, чтобы обработать нажатие на эти зоны и заставить интерфейс реагировать соответствующим образом.