Parent UIView不包含/剪辑子视图

时间:2014-09-24 23:29:15

标签: ios uitableview uiview footer addsubview

我正在尝试向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 个答案:

答案 0 :(得分:8)

clipsToBounds设为是

footer.clipsToBounds = YES;

关于此的文件:

  

一个布尔值,用于确定子视图是否仅限于   观点的界限。

     

声明SWIFT var clipsToBounds:Bool OBJECTIVE-C   @property(nonatomic)BOOL clipsToBounds Discussion设置此值   为YES会导致子视图被剪切到接收器的边界。如果   设置为NO,其帧超出可见边界的子视图   接收器没有被剪裁。默认值为NO。

     

导入语句导入UIKit

     

可用性适用于iOS 2.0及更高版本。


要调整页脚大小,您必须覆盖页脚高度的UITableViewDelegate方法:

  
      
  • (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section参数tableView   请求此信息的表视图对象。部分索引   标识tableView的一部分的数字。返回值非负   浮点值,指定的高度(以磅为单位)   页脚的页脚。
  •   

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