私は、本来のiPhoneのカレンダーのように、昼間のビューカレンダーを作っています。同じ大きさで同じ時間であれば、タイルをネイティブカレンダーと同じ位置に並べようとしています。iOS:複数の交差ビュー
しかし、私は2タイルではなく、複数のタイルにどのように行うのか理解することができます。添付画像には4枚のタイルがあります。私は最初のタイルを左端に、2番目のタイルを最初のタイルの直後に持っています。今、私は追加のタイルを追加する方法を理解する必要がありますか?
2タイル以上の場合、どうすればよいですか?画像について
:あなたはそれを見ることができない場合は3番目のタイルは(あなたは、彼らが互いの上にあるので、それは少し暗い見ることができる第二のタイルの岩下です
。- (void)layoutSubviews
{
// Set the main
for (UIView *view in self.subviews) {
APCalendarDayTile *tile = (APCalendarDayTile *)view;
CGFloat startPos = [APCalendarCurrentDayView yAxisForTime:[APCalendarCurrentDayView minutesToTime:tile.appointment.startDate]];
CGFloat endPos = [APCalendarCurrentDayView yAxisForTime:[APCalendarCurrentDayView minutesToTime:tile.appointment.endDate]];
tile.frame = CGRectMake(kLeftSideBuffer, startPos, (self.bounds.size.width - kLeftSideBuffer) , endPos - startPos);
tile.backgroundColor = [UIColor colorWithHexString:tile.appointment.appointmentColor];
}
for (UIView *view in self.subviews) {
APCalendarDayTile *tile = (APCalendarDayTile *)view;
if ([self viewIntersectsWithAnotherView:tile]) {
}
}
}
- (BOOL)viewIntersectsWithAnotherView:(UIView*)selectedView{
NSArray *subViewsInView=[self subviews];// I assume self is a subclass
// of UIViewController but the view can be
//any UIView that'd act as a container
//for all other views.
for (UIView *theView in subViewsInView){
if (![selectedView isEqual:theView]) {
if(CGRectIntersectsRect(selectedView.frame, theView.frame)) {
if ((selectedView.frame.origin.y == theView.frame.origin.y) && (selectedView.frame.size.height == theView.frame.size.height)) {
if (theView.frame.size.width == self.bounds.size.width - kLeftSideBuffer) {
theView.frame = CGRectMake(theView.frame.origin.x, selectedView.frame.origin.y, theView.frame.size.width/2, selectedView.frame.size.height);
}
selectedView.frame = CGRectMake(theView.frame.origin.x + theView.frame.size.width, selectedView.frame.origin.y, theView.frame.size.width, selectedView.frame.size.height);
return YES;
}
}
}
}
return NO;
}
いいえ私はそれが正しいです。私は同じ時間に始まり、同じ長さに並んでいるものだけが必要です – Bot
あなたのif/elseはちょっと混乱しているようです。 – Bot