Im Bild unten sind die UISwitches unten in einer Sammelansicht untergebracht. Ich stehe jedoch derzeit vor einem Problem, wo. Wenn ich oben einen Schalter zB in Roof Structure anwähle, wähle ich den Schalter NON-SABS APPROVED PRODUCT, wenn ich einen anderen Schalter herunterscrolle, für den nicht in der Ansicht ausgewählt wurde.UICollectionview Klick Ereignis für UISwitch
Ich habe die folgenden Schritte ausgeführt, um festzustellen, wie Man-Click-Ereignisse ausgelöst werden. Ich habe die Konsole verwendet, um die Ausgabe zu sehen, wenn ein Schalter ausgewählt ist. Die Ergebnisse zeigten, dass in einigen Fällen der Schalter Switch Switch nur als drittes Ereignis ausgelöst wird und die anderen zwei Ereignisse, die ausgelöst werden, Schalter sind, die sich nicht in der Benutzeransicht befinden.
Um dieses Problem zu lösen, habe ich versucht, das Problem zu lösen, indem ich dem Switch ein negatives Klickereignis zuwies. Diese bisher nicht funktioniert hat, sehen Sie den Code unten
Der Code für den Schalter Ereignis
public void btnQuestionAnswer_Click(object sender, EventArgs e)
{
UITableViewRowSwitch btnQuestionAnswer = (UITableViewRowSwitch)sender;
if ((btnQuestionAnswer.section.HasValue) && (btnQuestionAnswer.row.HasValue))
{
db_QuestionAnswer questionAnswer = questionDataModel[btnQuestionAnswer.section.Value].QuestionAnswers[btnQuestionAnswer.row.Value];
//Console.Write(questionAnswer.Answer);
Console.WriteLine(questionAnswer.Answer);
if ((btnQuestionAnswer.On))
{
if (questionDataModel[btnQuestionAnswer.section.Value].ComplianceIndicator)
{
foreach (db_QuestionAnswer QA in questionDataModel[btnQuestionAnswer.section.Value].QuestionAnswers)
{
QA.isTicked = false;
}
}
questionAnswer.isTicked = true;
// ((UICollectionView)btnQuestionAnswer.relatedView).ReloadData();
}
else
{
questionAnswer.isTicked = false;
}
}
else
{
btnQuestionAnswer.On = !btnQuestionAnswer.On;
}
var element = count.ToString();
}
public override UICollectionViewCell GetCell (UICollectionView Collection, NSIndexPath indexPath) { UIView Zelle;
if (questionDataModel[indexPath.Section].ComplianceIndicator)
{
cell = collectionView.DequeueReusableCell (QuestionUICollectionViewDelegateDataSource.complianceQuestionCellId, indexPath);
}
else
{
cell = collectionView.DequeueReusableCell (QuestionUICollectionViewDelegateDataSource.questionCellId, indexPath);
}
int row = indexPath.Row;
UILabel lblQuestionAnswer = (UILabel)cell.ViewWithTag (1);
UITableViewRowSwitch btnQuestionAnswer = (UITableViewRowSwitch)cell.ViewWithTag (2);
btnQuestionAnswer.ValueChanged -= btnQuestionAnswer_Click;
btnQuestionAnswer.ValueChanged -= btnQuestionAnswer_Click;
btnQuestionAnswer.ValueChanged += btnQuestionAnswer_Click;
if (row < questionDataModel [indexPath.Section].QuestionAnswers.Count)
{
lblQuestionAnswer.Text = questionDataModel[indexPath.Section].QuestionAnswers[indexPath.Row].Answer;
btnQuestionAnswer.section = indexPath.Section;
btnQuestionAnswer.row = indexPath.Row;
btnQuestionAnswer.On = questionDataModel [indexPath.Section].QuestionAnswers [indexPath.Row].isTicked;
//----------------TODO----------------//
// ----
btnQuestionAnswer.ValueChanged += btnQuestionAnswer_Click;
btnQuestionAnswer.ValueChanged -= btnQuestionAnswer_Click;
//if (!btnQuestionAnswer.hasEvent)
{
btnQuestionAnswer.ValueChanged -= btnQuestionAnswer_Click;
//btnQuestionAnswer.ValueChanged -= btnQuestionAnswer_Click;
btnQuestionAnswer.ValueChanged += btnQuestionAnswer_Click;
//btnQuestionAnswer.hasEvent = true;
}
btnQuestionAnswer.relatedView = collectionView;
if (questionDataModel [indexPath.Section].isLocked)
{
btnQuestionAnswer.Enabled = false;
}
else
{
btnQuestionAnswer.Enabled = true;
}
lblQuestionAnswer.Hidden = false;
btnQuestionAnswer.Hidden = false;
}
else
{
lblQuestionAnswer.Hidden = true;
btnQuestionAnswer.Hidden = true;
}
if (controller.loggedInUser.UserType != "Inspector")
{
btnQuestionAnswer.Enabled = false;
}
return (UICollectionViewCell)cell;
}
Wie kann ich PrepareForReuse Ich erhalte den folgenden Fehler Kein passender Fehler zum Ändern gefunden – George
Verwenden Sie eine benutzerdefinierte Klasse für Ihre Zellen? oder verwenden Sie statische Zellen? z. öffentliche partielle Klasse MyDerivedCell: UICollectionViewCell – Digitalsa1nt
Klasse meilensteinViewDelegateDataSource: UITableViewSource {} und Klasse QuestionUICollectionViewDelegateDataSource: UICollectionViewSource {} – George