UITableView
изменяет размер представления (и всех его подпредставлений), возвращаемого - (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
.Чтобы решить вашу проблему, вам нужно представление-оболочка, в котором ваш UIButton
размещается без использования автоматического изменения размера.Вот пример реализации такого UIView
класса:
@interface ButtonWrapperView : UIView {
UIButton *_button;
}
@property (nonatomic, readonly) UIButton *button;
@end
@implementation ButtonWrapperView
@synthesize button = _button;
- (id)init
{
if ((self = [super initWithFrame:CGRectZero])) {
_button = [[UIButton buttonWithType:UIButtonTypeRoundedRect] retain];
[self addSubview:_button];
}
return self;
}
- (void)layoutSubviews
{
[super layoutSubviews];
// Layout button
_button.frame = CGRectMake(10.0f, 0.0f, self.bounds.size.width - 20.0f, self.bounds.size.height);
}
- (void)dealloc
{
[_button release];
[super dealloc];
}
@end
Просто верните это представление в - (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
, и ваша кнопка должна отображаться правильно.
У меня также загружен пример проекта , в котором полностью реализовано вышеуказанное решение.