Один из вариантов - использовать WebView
для отображения вашего контента.Затем вы получите именно то поведение, которое ожидаете, за счет небольшой работы по управлению взаимодействием с элементами управления.
Вам нужно установить WebView
для отображения без фона, используя [webView setDrawsBackground:NO]
.
Вам также необходимо создать контент (включая рейтинг звезды и кнопку), используяHTML / CSS, а затем используйте мост Objective-C / JavaScript для обратного вызова вашего приложения при нажатии кнопки.
Для получения дополнительной информации о вызове Objective-C из JavaScript см. здесь .
Возможно, вы также можете использовать NSTextView
и встраивать кнопку и рейтинг звезды как NSTextAttachment
объекты, но это довольно сложно, было бы намного проще использовать WebView
.
Единственная другая альтернатива, которую я вижу, - это написание контроллера представления, который управляет макетом элементов управления на основе текущего размера их представления контейнера.Вам нужно измерить текст, чтобы сделать это, и один из способов сделать это - использовать превосходную категорию NS (приписанную) String + Geometrics , написанную Джерри Криноком.