5

有什么方法可以更改 EKEventViewController 中详细信息 UITableView 的背景颜色/图像?由于没有表格的出口,我可以更改主 UITableView 但不能更改详细 UITableView。例如,这里是 Apple 的Event App示例源代码

4

3 回答 3

5

您不应该只在 index:0 处获取子视图。这可能适用于您当前的代码,但如果 Apple 对 View 进行更改,它可能会在未来的 IOS 版本中中断。

这更“面向未来”

for (UIView *searchTableView in [yourEventController.view subviews]) {

    if ([eventTableView isKindOfClass:[UITableView class]]) {
        @try {
            // change stuff to eventTableView

            for (UIView *eventTableViewCell in [eventTableView subviews]) {

                if ([eventTableViewCell isKindOfClass:[UITableViewCell class]]) {
                    @try {
                        [(UITableViewCell *)eventTableViewCell setBackgroundColor:[UIColor clearColor]];
                    }
                    @catch (NSException * e) {
                    }
                }
            }


        }
        @catch (NSException * e) {
        }
    }
} 

记住所有的尝试和捕获!如果苹果对 EKEventViewController 进行更改,那么代码可能仍然有效,并且如果更改破坏了向后兼容性,它也不会崩溃。

于 2011-05-30T18:19:59.763 回答
3

这是你可以使用的,

UITableView *eventTableView = [[yourEventController.view subviews]objectAtIndex:0];

eventTableView是对您EKEventViewController的 tableView 的引用,现在您可以对其进行自定义。

谢谢,

于 2011-04-20T04:05:45.720 回答
0

对于 EKEventEditViewController,Michael Gray 的回答在 iOS7 上对我不起作用

也许 EKEventEditViewController 的实现是不同的。

这是我使用的代码:

for (UIViewController *controller in ekEventEditViewController.childViewControllers) {
            if ([controller isKindOfClass:[UITableViewController class]]) {
                 NSLog(@"UITableViewController in EKEventViewController");
            }
}  
于 2014-01-15T15:16:14.080 回答