Вид с кнопками, вероятно, будет скрыт до тех пор, пока вид с изображением не обнаружит касание, после чего он выполняет метод touchesBegan: withEvent: , который является частью класса UIResponder.Большинство представлений подкласса UIResponder, так что это встроенный метод вместе с touchesEnded: withEvent: .Когда touchesEnded: withEvent: выполняется, вид кнопки отклоняется.(Он либо сразу скрывается, либо анимирует альфа-значение до тех пор, пока не исчезнет.)
Дополнительная информация
Вот код из Кал-Календаря Кейта Лазуки.Этот код просматривает позицию, в которой касание закончилось, чтобы определить, на какую «плитку» в календаре попадет.Я предполагаю, что то же самое можно использовать здесь, чтобы определить, какая «кнопка» выбрана в вашем примере.
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
[self receivedTouches:touches withEvent:event];
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
[self receivedTouches:touches withEvent:event];
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [touches anyObject];
CGPoint location = [touch locationInView:self];
UIView *hitView = [self hitTest:location withEvent:event];
//[self receivedTouches:touches withEvent:event];
if ([hitView isKindOfClass:[KalTileView class]]) {
KalTileView *tile = (KalTileView*)hitView;
if (tile.belongsToAdjacentMonth) {
if ([tile.date compare:[KalDate dateFromNSDate:logic.baseDate]] == NSOrderedDescending) {
[delegate showFollowingMonth];
} else {
[delegate showPreviousMonth];
}
self.selectedTile = [frontMonthView tileForDate:tile.date];
} else {
//self.selectedTile = tile;
}
}
self.highlightedTile = nil;
}
Ключ к этому находится в первых трех строках кода в методе touchesEnded.
hitTest: withEvent: это метод экземпляра UIView, который сообщает вам, какой вид был поражен при возникновении события touchesEnded, исходя из местоположения точки, в которой произошли касания.
Как вы можете видетьв этом примере кода он возвращает экземпляр UIView (или что-то, подклассифицирующее UIView).Как только вы узнаете, какое представление было идентифицировано, в код можно записать необходимое действие.