、およびを使用したiPad
アプリがあります。を含むシーンがあります。その中に、すべて IB を使用して作成された があります。プログラムで、2 つ(1 つは、もう1 つは ) を作成し、それらを;に追加しました。どちらもシミュレータで正しく表示されます。コードは次のとおりです。Storyboards
XCode 4.6
iOS 6.1
UIViewController
UIViewController
UIScrollController
viewDidLoad
UIViews
subViewGrid
subViewData
UIViewController
- (void)viewDidLoad {
[super viewDidLoad];
// notify me when calendar has been tapped and CFGregorianDate has been updated
[[NSNotificationCenter defaultCenter] removeObserver:self];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(calendarTapNotification:)
name:@"calendarDateSelected" object:nil ];
// UIScrollVIew settings
CGSize scrollableSize = CGSizeMake(760, 1379); // set size of scheduleView
[self.schedScrollView setContentSize:scrollableSize];
self.schedScrollView.contentInset = UIEdgeInsetsMake(0,0,44,44); // allow for scroll bar
self.schedScrollView.directionalLockEnabled = YES; // prevents diagonal scrolling
// create a sub-view to hold the appointment GRID
CGRect frame = CGRectMake(0,0,760,1390); // 110,48,760,1390
subViewGrid = [[UIView alloc] initWithFrame:frame];
subViewGrid.tag = 12; // use tag to get correct sub-view
subViewGrid.backgroundColor = [UIColor grayColor];
subViewGrid.alpha = 1.0; // make it opaque
[self.schedScrollView addSubview:subViewGrid];
// create a sub-view to hold the appointment DATA
frame = CGRectMake(110,48,670,750);
subViewData = [[UIView alloc] initWithFrame:frame];
subViewData.tag = 22; // use tag to get correct sub-view
subViewData.backgroundColor = [UIColor redColor];
subViewData.alpha = 0.2; // make it sort of transparent
[self.schedScrollView addSubview:subViewData];
[self.subViewGrid setNeedsDisplay]; // **** UPDATED ****
}
の.h
ファイルの内容は次のUIViewController
とおりです。
@interface CalendarViewController : UIViewController {
UIView *subViewGrid;
UIView *subViewData;
}
@property (strong, nonatomic) IBOutlet UIScrollView *schedScrollView;
- (void) calendarTapNotification:(NSNotification *) notification;
-(NSDate *)beginningOfDay:(NSDate *)date;
-(NSDate *)endOfDay:(NSDate *)date;
@end
私のdrawRect
方法では、subViewGrid に「グリッド」を描画するコードがいくつかあります。問題drawRect
が呼び出されることはありません。
Programmer's Guideを読み、UIView
SO を調べ、Google 検索を実行しましたが、問題に対処するものは見つかりませんでした。つまり、配置した場所から[self.subViewGrid setNeedsDisplay]
呼び出されないのはなぜdrawRect
ですか?