Отсечение в UIView с некоторыми подпредставлениями - PullRequest
0 голосов
/ 29 июня 2009

У меня есть несколько кнопок в UIView. Моя проблема в том, что они режут на правой стороне UIView. Как мне это предотвратить?

альтернативный текст http://img.skitch.com/20090629-mj32p1bkff476256pwrpt69n2d.png

Я уже проверил свойство клипа Интерфейсных Разработчиков, но это не решение этой проблемы.

Привет

Ответы [ 3 ]

1 голос
/ 08 июля 2009

Я использую Java и только недавно начал изучать Apple Obj-C Framework.

Альтернативой прокрутке и разбивке строк является использование «сетки» с 1 строкой и n столбцами, где n - количество кнопок. Каждая ячейка имеет фиксированный размер. И вам придется изменить размер ваших кнопок (подпредставлений) в setNeedsLayout: метод вашего суперпредставления до любой необходимой вам ширины, чтобы все кнопки помещались в строку.

См. Класс Java GridLayout.

1 голос
/ 29 июня 2009

Похоже, вы либо сделали эти кнопки программно, либо заново открыли исходное окно просмотра IB, чтобы ожидать его уменьшения до размеров экрана.

Соответствующие кнопки не помещаются на экране такими, какие они есть - какой эффект вы ищете?

Если вы хотите, чтобы все кнопки соответствовали друг другу, вы можете установить меньший размер текста, а затем они могут соответствовать.

Если вы хотите, чтобы кнопки имели размер, то вам нужно будет сделать еще один ряд или поместить кнопки в контейнер с боковой прокруткой.

0 голосов
/ 30 июня 2009

Кендалл, спасибо за ваш ответ.

Вот мое решение:

    if(previousFrame.origin.x + theStringSize.width > 220){
            roundedButton.frame = CGRectMake(15, previousFrame.origin.y + 30 ,  theStringSize.width + 8, theStringSize.height);
            [myContainer insertSubview:roundedButton belowSubview:[tagsContainer.subviews lastObject]];
        }else {
            roundedButton.frame = CGRectMake(previousFrame.origin.x + previousFrame.size.width + 5, previousFrame.origin.y,  theStringSize.width + 5, theStringSize.height);
            [myContainer insertSubview:roundedButton belowSubview:[tagsContainer.subviews lastObject]]; 
        }

Я рассчитываю, сколько пикселей я сдвинул с левой стороны. На некотором пороге (в моем случае 220) я начинаю новую строку.

...