自定义uitableviewcell不占用父tableview容器空间的剩余部分

时间:2013-04-16 09:08:32

标签: ios cocoa

我开发了一个自定义tableviewcell,用于我的项目,名为UpdatesTableViewCell类。 我到目前为止所得到的内容已经显示在这个问题底部的快照中。

我遇到的唯一问题 遗憾的是,体验应用程序布局仅适用于纵向,但不适用于横向模式。

那就是说,当我的iphone旋转到横向时,上面提到过 自定义单元格似乎没有填满包含表格视图的所有空间,在它之后留下一些空隙。这不会带来愉快的用户体验。

请注意,我还设置了自动调整功能,告诉tableviewcell左右扩展,填满容器的空间。 (见第1张快照图片)

非常感谢任何以横向为导向的建议

...

UpdatesTableViewCell.xib

enter image description here

UpdatesTableViewCell.h

#import <UIKit/UIKit.h>

@interface UpdatesTableViewCell : UITableViewCell

@end

UpdatesTableViewCell.m

#import "UpdatesTableViewCell.h"

@implementation UpdatesTableViewCell

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
    if (self) {
        // Initialization code
    }
    return self;
}

- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
    [super setSelected:selected animated:animated];

    // Configure the view for the selected state
}

@end

,最后一块是ResultViewController.m中的一段代码(使用UpdatesTableViewCell的父UITableViewController)

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";

    UpdatesTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {

        NSArray* views = [[NSBundle mainBundle] loadNibNamed:@"UpdatesTableViewCell" owner:nil options:nil];

        for (UIView *view in views) {
            if([view isKindOfClass:[UITableViewCell class]])
            {
                cell = (UpdatesTableViewCell*)view;
            }
        }
    }

    return cell;
}

这是上面提到的意外结果:

enter image description here

1 个答案:

答案 0 :(得分:2)

  

请注意我也设置自动调整以告诉tableviewcell   向左和向右扩展,填满容器的空间。 (见第1节   快照图片)

您需要标记水平箭头以调整宽度。

你现在拥有的是:

UIViewAutoresizingFlexibleLeftMarginUIViewAutoresizingFlexibleRightMargin
视图通过向左/右边距的方向扩展或缩小来调整大小。

您需要的是:

UIViewAutoresizingFlexibleWidth
视图通过展开或缩小其宽度来调整大小。