Ios 使UITableView使用子视图下的所有可用空间
我正在尝试在iOS 7应用程序中创建一个与内置日历应用程序类似的日历屏幕,该应用程序显示一个日历月视图,下面有一个Ios 使UITableView使用子视图下的所有可用空间,ios,uitableview,calendar,Ios,Uitableview,Calendar,我正在尝试在iOS 7应用程序中创建一个与内置日历应用程序类似的日历屏幕,该应用程序显示一个日历月视图,下面有一个UITableView。然而,我想要的是UITableView自动使用日历下的所有可用空间-显示为5周的月份比显示为4周的月份需要更多空间 我将框架用作日历,它作为子视图添加到主视图中。我在故事板中创建了UITableView,所以它的位置是固定的。我不知道如何重新绘制UITableView以使用可用空间?是否可以检测日历子视图的底部,然后将UITableView推到显示屏上的该点
UITableView
。然而,我想要的是UITableView
自动使用日历下的所有可用空间-显示为5周的月份比显示为4周的月份需要更多空间
我将框架用作日历,它作为子视图添加到主视图中。我在故事板中创建了UITableView
,所以它的位置是固定的。我不知道如何重新绘制UITableView
以使用可用空间?是否可以检测日历子视图的底部
,然后将UITableView
推到显示屏上的该点
这里有几个图片可以更清楚地说明我的意思:在您的代码中,我相信您有一些属性,例如calendarView和tableView
在viewDidLoad中,您可以添加
CGRect calendarFrame = calendarView.frame;
CGRect tableViewFrame = tableView.frame;
tableViewFrame.origin.y = calendarFrame.origin.y+calendarFrame.size.height;
tableView.frame = tableViewFrame;
如果视图层次结构如下所示:
-view
-calendar
-tableview
然后尝试在日历和tableview之间的故事板中自动布局。给你 您可以在VRGCalendarViewDelegate方法中进行以下更改
-(void)calendarView:(VRGCalendarView *)calendarView switchedToMonth:(int)month targetHeight:(float)targetHeight animated:(BOOL)animated
{
NSTimeInterval animationDuration = animated ? 0.3 :0.0;
[UIView animateWithDuration:animationDuration animations:^{
CGRect frame = self.tableView.frame;
frame.origin.y = CGRectGetMinX(calendarView.frame) + targetHeight;
frame.size.height = self.view.frame.size.height - frame.origin.y;
self.tableView.frame = frame;
}];
}
太棒了,非常感谢!虽然我必须用您的解决方案修复一个小错误,但解决此问题需要的是tableViewFrame.origin.y
和calendarFrame.origin.y
,而不是.x
。