Я понял это, так вот ответ для потомков:
Оказывается, что проблема всегда и только возникает, когда браузер данных представления списка расположен с нецелым горизонтальным смещением.
HIViewSetFrame()
принимает аргумент HIRect
, который использует типы float
для origin
и size
. Когда размер родительского фрейма изменяется таким образом, что происхождение браузера падает на нецелое число origin.x
, возникают графические ошибки. Не имеет значения, является ли вертикальное смещение или размерное измерение нецелым.
Решение состоит в том, чтобы браузеры, которые перемещаются при изменении размеров окна, округляли свое значение x:
frame.origin.x = roundf(frame.origin.x);
Похоже, что никакие другие элементы управления не имеют проблем с нецелым происхождением.