Это то, что я считаю неправильным.Во-первых, вам нужно изменить функцию IBAction, потому что она ничего не делает.Это то, что переводится как:
-(IBAction) segmentedControlIndexChanged {
if(self.segmentedControl.selectedSegmentIndex == 0)
{
self.segmentedControl.selectedSegmentIndex == 0;
}
else if (self.segmentedControl.selectedSegmentIndex == 1)
{
self.segmentedControl.selectedSegmentIndex == 1;
}
}
Я надеюсь, вы согласитесь со мной, что это ничего не делает;то, что он делает, проверяет, является ли индекс тем, чем вы хотите его видеть, а затем проверяет его снова.Может быть, вы хотели изменить его (только один знак равенства, но это тоже не имеет смысла) ??, но в любом случае это не решит вашу проблему.
Во-вторых, создайте логическое значение в своем классе(назовите его leftSideConversation), инициализируйте его значением ИСТИНА, если selectedSegmentedIndex изначально установлен в 0, и ЛОЖЬ, если он равен 1. Затем измените часть кода IBAction в вашем коде так:
-(IBAction) segmentedControlIndexChanged {
if(self.segmentedControl.selectedSegmentIndex == 0)
{
leftSideConversation = TRUE;
}
else if (self.segmentedControl.selectedSegmentIndex == 1)
{
leftSideConversation = FALSE;
}
}
Третий, что вам нужно сделать, это создать идентичность ... вам нужно знать, кто что печатает.Я не могу помочь вам с этим, потому что я не знаю, как это было запрограммировано, но вам нужно найти способ.Следующая часть в вашем коде - это то, что не так.Индекс сегмента остается неизменным на протяжении всего разговора и изменяется только при нажатии кнопки.Следовательно, разговор всегда ведется на одной стороне, и, судя по предоставленным снимкам, кажется, что так было всегда.Измените эту часть своего кода с:
if(segmentedControl.selectedSegmentIndex == 0) {
balloonView.frame = CGRectMake(320.0f - (size.width + 28.0f), 2.0f, size.width + 28.0f, size.height + 15.0f);
balloon = [[UIImage imageNamed:@"green.png"] stretchableImageWithLeftCapWidth:24 topCapHeight:15];
label.frame = CGRectMake(307.0f - (size.width + 5.0f), 8.0f, size.width + 5.0f, size.height);
}
else if(segmentedControl.selectedSegmentIndex == 1) {
balloonView.frame = CGRectMake(0.0, 2.0, size.width + 28, size.height + 15);
balloon = [[UIImage imageNamed:@"grey.png"] stretchableImageWithLeftCapWidth:24 topCapHeight:15];
label.frame = CGRectMake(16, 8, size.width + 5, size.height);
}
, чтобы посмотреть что-то вроде этого:
if(myText == leftSideConversation) {
balloonView.frame = CGRectMake(320.0f - (size.width + 28.0f), 2.0f, size.width + 28.0f, size.height + 15.0f);
balloon = [[UIImage imageNamed:@"green.png"] stretchableImageWithLeftCapWidth:24 topCapHeight:15];
label.frame = CGRectMake(307.0f - (size.width + 5.0f), 8.0f, size.width + 5.0f, size.height);
}
else {
balloonView.frame = CGRectMake(0.0, 2.0, size.width + 28, size.height + 15);
balloon = [[UIImage imageNamed:@"grey.png"] stretchableImageWithLeftCapWidth:24 topCapHeight:15];
label.frame = CGRectMake(16, 8, size.width + 5, size.height);
}
где myText - логическое значение, которое сопровождает каждое из напечатанных сообщений,таким образом, что myText имеет значение TRUE, если вы отправляете сообщение, и FALSE, если вы его получаете.Удачи!