5

EKEventViewController の詳細 UITableView の背景色/画像を変更する方法はありますか? メインの UITableView は変更できますが、テーブルのアウトレットがないため、詳細の UITableView は変更できません。たとえば、イベント アプリの Apple のサンプル ソース コードは次のとおりです。

4

3 に答える 3

5

index:0でサブビューを取得するだけではいけません。これは現在のコードでは機能する可能性がありますが、Appleがビューに変更を加えると、将来の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) {
        }
    }
} 

すべての試みとキャッチを覚えておいてください!AppleがEKEventViewControllerに変更を加えた場合、コードはおそらく引き続き機能し、変更によって下位互換性が失われた場合でもクラッシュしません。

于 2011-05-30T18:19:59.763 に答える
3

使えるものはこちら、

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

これeventTableViewはあなたの tableView への参照であり、EKEventViewControllerカスタマイズできるようになりました。

ありがとう、

于 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 に答える