Родительский UIView, не содержащий / отсекающий подвиды


Я пытаюсь добавить нижний колонтитул к UITableView. Таблица-это таблица комментариев, а нижний колонтитул-это место, где пользователь вводит свои комментарии для публикации. Поэтому, естественно, я определяю UIView и внутри UIView я добавляю UITextField и UIButton. (слева направо).

Проблема в том, что UIView не охватывает представления детей. Я хочу, чтобы дети были вертикально центрированы внутри родительского нижнего колонтитула. Мой код приведен ниже. Что я делаю не так? Прямо сейчас Родительский вид показывает как тонкая плита в красном цвете. И перекрывающие родителя UITextField и UIButon, которые больше по высоте, чем родитель.
- (UIView *)tableView:(UITableView *)tv viewForFooterInSection:(NSInteger)section
{
    static UIView *footer =nil;
    if (nil == footer) {
        footer =[[UIView alloc]initWithFrame:CGRectMake(0, 0, 320, 70)];
        footer.backgroundColor=[UIColor redColor];

        self.commentInputTextView=[[UITextView alloc]initWithFrame:CGRectMake(0, 0, 240, 50)];
        self.commentInputTextView.delegate=self;
        self.commentInputTextView.contentInset = UIEdgeInsetsMake(0, 0, 0, 0);
        self.commentInputTextView.backgroundColor=[UIColor greenColor];
        [footer addSubview:self.commentInputTextView];

        UIButton *post = [[UIButton alloc] initWithFrame:CGRectMake(250, 0, 60, 50)];
        post.backgroundColor=[UIColor blueColor];
        [post setTitle:@"Post" forState:UIControlStateNormal];
        [footer addSubview:post];
        [footer sizeToFit];
    }
    return footer;
}
1 2

1 ответ:

Установить clipsToBounds в YES

footer.clipsToBounds = YES;

Документы по этому вопросу:

Логическое значение, определяющее, ограничиваются ли вложенные представления границы вида.

Объявление SWIFT var clipsToBounds: bool OBJECTIVE-C @property (nonatomic) bool clipsToBounds Обсуждение установка этого значения "да" приводит к тому, что подвиды обрезаются до границ приемника. Если установите значение нет, подвиды, рамки которых выходят за видимые границы приемник не обрезан. Неисполнение ценности нет.

Оператор импорта import UIKit

Доступность доступна в iOS 2.0 и более поздних версиях.

Чтобы изменить размер нижнего колонтитула, необходимо переопределить метод UITableViewDelegate для высоты нижнего колонтитула:

  • (CGFloat)tableView: (UITableView *) tableView heightForFooterInSection: (NSInteger)параметры раздела tableView объект табличного представления, запрашивающий эту информацию. раздел A индекс номер, идентифицирующий раздел tableView . Возвращаемое Значение неотрицательный значение с плавающей запятой, определяющее высоту (в пунктах) объекта нижний колонтитул для раздела.

Https://developer.apple.com/library/ios/documentation/UIKit/Reference/UITableViewDelegate_Protocol/index.html#//apple_ref/occ/intfm/UITableViewDelegate/tableView:heightForFooterInSection: