(kal) 日历/tableview 视图层次结构在标签栏中中断
Posted
技术标签:
【中文标题】(kal) 日历/tableview 视图层次结构在标签栏中中断【英文标题】:(kal) calendar/tableview view hierarchy broken in tabbar 【发布时间】:2012-10-07 16:08:39 【问题描述】:我正在使用Kal,但无法正常显示。
现在,在情节提要中,我有一个带有标签 1 的主视图的子视图:
我将该子视图安装到导航栏和标签栏之间的空间:
问题是日历/表格视图 (Kal) 没有正确显示在该子视图中:
首先是月份上方的灰色小条(可能是 Kal 的 iPhone 信息栏间距?)。然后日历底部的 tableview 表现得好像它延伸到标签栏下方很远。也就是说,单元格不会正确滚动,从底部向上窥视的标记为 11:58 的单元格可以看出。 (我已经把它滚动到最远了。)
这里是我设置代表和加载 Kal 日历/tableview 的视图:
- (void) viewDidLoad
NSLog(@"DateTimeViewController - viewDidLoad");
[super viewDidLoad];
self.calendar = [[KalViewController alloc] init];
self.calendar.delegate = self;
self.calendar.dataSource = self;
[[self.view viewWithTag:1] addSubview:self.calendar.view];
NSLog(@"selected date = %@",self.calendar.selectedDate);
【问题讨论】:
为什么不尝试为子视图设置框架? @Sharanya - 嗯...这不是我在第二张图片中所做的吗?也许我对此并不熟悉。什么是框架/我该怎么做? 您可以为您创建的任何视图/子视图设置视图框架。检查答案 【参考方案1】:我遇到了完全相同的问题,我去了KalViewController.m
loadView
并以这种方式更改代码:
// KalView *kalView = [[KalView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame] delegate:self logic:logic];
int width = [[UIScreen mainScreen] applicationFrame].size.width;
int height = [[UIScreen mainScreen] applicationFrame].size.height-93;
KalView *kalView = [[KalView alloc] initWithFrame:CGRectMake(0, 0, width, height) delegate:self logic:logic];
这解决了“标题”边距和表格视图大小的问题。 只需使用高度值即可。
【讨论】:
【参考方案2】:在 CGRectMake 中使用你的 'y' 值来获得所需的帧。试试这个
KalViewController *kalView = [[KalViewController alloc] initWithFrame:CGRectMake(0,-20,100,320)];
self.calender = kalView;
CGRectMake(x 位置> , y 位置> , 所需高度> , 所需宽度>)
【讨论】:
看起来 KalViewController 没有响应 initWithFrame。 它有视图属性吗?? 只做一个初始化.. 然后尝试用 kalView.view.frame.size.y = -20 添加一个框架;或类似的东西...检查它的属性 有趣。它确实有一个视图属性。更改视图的框架会导致一些奇怪的行为。我将继续尝试不同的数字。 现在无法正确接收触摸输入。我感觉它正在绘制一个帧,但响应另一帧中的触摸。以上是关于(kal) 日历/tableview 视图层次结构在标签栏中中断的主要内容,如果未能解决你的问题,请参考以下文章