(Kal) иерархия представления календаря / таблицы нарушена на панели вкладок

Я использую Kal, и у меня возникают проблемы с его правильным отображением.

Прямо сейчас в раскадровке у меня есть часть основного представления с тегом 1:

иерархия представлений

У меня есть это подпредставление, соответствующее пространству между панелью навигации и панелью вкладок:

введите описание изображения здесь

Проблема в том, что календарь / табличное представление (Kal) не отображается должным образом в этом подпредставлении:

введите описание изображения здесь

Сначала есть эта маленькая серая полоса над месяцем (может быть, интервал Кэла для информационной панели iPhone?). Тогда табличное представление в нижней части календаря ведет себя так, как если бы оно простиралось далеко под панелью вкладок. То есть ячейки не будут прокручиваться должным образом, как это видно по ячейке с надписью 11:58, которая выглядывает снизу. (Я прокрутил его до упора.)

Здесь я устанавливаю делегатов и загружаю представление для календаря / таблицы Kal:

- (void) viewDidLoad 
{    
    NSLog(@"DateTimeViewController - viewDidLoad");

    [super viewDidLoad];

    self.calendar = [[KalViewController alloc] init];

    self.calendar.delegate = self;
    self.calendar.dataSource = self;

    [[self.view viewWithTag:1] addSubview:self.calendar.view];

    NSLog(@"selected date = %@",self.calendar.selectedDate);

}

person ari gold    schedule 07.10.2012    source источник
comment
почему бы вам не попробовать установить рамку для подпредставления?   -  person Sharanya K M    schedule 07.10.2012
comment
@Sharanya - Хм ... Это не то, что я сделал, как показано на второй картинке? Может, я не знаком с этим. Что такое рамка / как мне это сделать?   -  person ari gold    schedule 07.10.2012
comment
вы можете установить рамку просмотра для любого создаваемого представления / подпредставления. проверьте ответ   -  person Sharanya K M    schedule 07.10.2012


Ответы (2)


У меня была точно такая же проблема, я пошел в KalViewController.m в loadView

и изменили код таким образом:

//  KalView *kalView = [[KalView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame] delegate:self logic:logic];
int width = [[UIScreen mainScreen] applicationFrame].size.width;
int height = [[UIScreen mainScreen] applicationFrame].size.height-93;
KalView *kalView = [[KalView alloc] initWithFrame:CGRectMake(0, 0, width, height) delegate:self logic:logic];

Это решило меня как проблему поля «заголовка», так и размера представления таблицы. Просто поиграйте со значением высоты.

person Mijail    schedule 28.06.2013

Поиграйте немного со своим значением «y» в CGRectMake, чтобы получить требуемый кадр. попробуй это

KalViewController *kalView = [[KalViewController alloc] initWithFrame:CGRectMake(0,-20,100,320)];
self.calender = kalView;

CGRectMake (‹положение x>,‹ положение y>, ‹требуемая высота>,‹ требуемая ширина>)

person Sharanya K M    schedule 07.10.2012
comment
Похоже, KalViewController не отвечает на initWithFrame. - person ari gold; 07.10.2012
comment
у него есть свойство просмотра ?? - person Sharanya K M; 07.10.2012
comment
просто выполните инициализацию .. а затем попробуйте добавить фрейм с помощью kalView.view.frame.size.y = -20; или что-то подобное ... проверьте его свойства - person Sharanya K M; 07.10.2012
comment
Интересный. У него есть свойство просмотра. Изменение рамки представления вызывает странное поведение. Я буду пробовать разные числа. - person ari gold; 07.10.2012
comment
Теперь он не получает сенсорный ввод должным образом. У меня такое ощущение, что он рисует один кадр, но реагирует на прикосновения в другом кадре. - person ari gold; 07.10.2012