IOS 开发中 Tableviewcontroller 如何调整高度?

使用表示图之后发现占满了整个屏幕,如何缩小高度?因为要在顶部添加按钮,求大神指点。... 使用表示图之后发现占满了整个屏幕,如何缩小高度? 因为要在顶部添加按钮,求大神指点。 展开
 我来答
08物理
推荐于2016-01-13 · 知道合伙人软件行家
08物理
知道合伙人软件行家
采纳数:1141 获赞数:4137
1、国内上市公司资深运维工程师、产品经理 2、百度芝麻将,认证管理员

向TA提问 私信TA
展开全部

1、新建一个基于singleview的工程,然后删除默认Storyboard的ViewController,拖拽一个TableviewController,设置为inital Controller


2、往Prototype Cells上拖拽两个UILabel 
如图 


3、为两个Label设置属性 

Title 

设置tag为10 


4、Detail 
设置tag为11 


5、为两个Label设置AutoLayout 

Title 

注意,这里把title放在左上角,Detail放在左下角。然后添加二者之间的距离恒定为1,那么AutoLayout就会自动计算出高度。



新建一个TableviewController,并且讲storyboard上的tableviewController设置为新建的类 

设置Tableview的高度为自动获取


-(CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath{

    return UITableViewAutomaticDimension;

}

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{

    return UITableViewAutomaticDimension;

}

加入存储数据的数组,并且在初始化里设定数据


@property (strong,nonatomic)NSArray * titleArray;

@property (strong,nonatomic)NSArray * detailArray;

- (void)viewDidLoad {

    [super viewDidLoad];

    self.titleArray = @[@"1",@"2",@"3"];

    self.detailArray = @[@"shot",@"Aduahguhauhguhaudghuahguhudhauhg",@"dhuahgudhaughuahdughuahguhauhguhdahudhuahughduahguhadguhaduhguadhughduahguahguhadugh"];

}

接下来就是Tablview的常用的,很好理解,这里不多赘述


- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {

    return 1;

}


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {

    return self.titleArray.count;

}

-(BOOL)prefersStatusBarHidden{

    return true;

}


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath];

    UILabel * titleLabel = (UILabel *)[cell viewWithTag:10];

    UILabel * contentLabel = (UILabel *)[cell viewWithTag:11];

    titleLabel.text = self.titleArray[indexPath.row];

    contentLabel.text = self.detailArray[indexPath.row];

    contentLabel.numberOfLines = 0;

    return cell;

}

然后,就得到了我们想要的效果了。

ASteR0id
2014-01-24
知道答主
回答量:26
采纳率:0%
帮助的人:14.6万
展开全部
如果是StoryBroad的话可以直接在SB文件里设置,如果想用代码修改的话- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
追问
tableviewcontroller是封装好的,在故事版里面高度是灰色的,也就是调整不了。你说的是不是tableview而不是tableviewcontroller?
追答
你在tableview里拖进去uitableviewcell了么?直接设置那个高度就成
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
月夜_彩虹
2014-02-02 · TA获得超过1016个赞
知道大有可为答主
回答量:2153
采纳率:0%
帮助的人:1248万
展开全部
UITableViewController默认tableView是全屏的,你可以使用UIViewController,然后自己添加UITableView就好了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ZFengg
2014-01-24 · 超过11用户采纳过TA的回答
知道答主
回答量:32
采纳率:0%
帮助的人:29.8万
展开全部
修改tableView的frame就可以了,如果用xib的话,把tableView拖成你想要的大小就可以了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
GFchenun
2014-01-24
知道答主
回答量:47
采纳率:0%
帮助的人:15.1万
展开全部
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

调用这个方法就可
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式