0

私は現在、Sensible TableView Frameworkを使用して、新しいアプリの検索フィルターマスクを作成しています。すべて正常に動作しますが、最新のScreendesignには新しい問題があります。

最小値と最大値の間の範囲を選択する必要があります。2つの数値テキストフィールドを使用して範囲を定義する代わりに、新しいタイプのカスタムRangeSlider(UISliderViewに馴染みのある)を作成する必要があります。今のところ、xibファイルを使用せずにRangeSlider(2つのサムマークが付いたスライダー)をCustomClassとして作成しました。これをテーブルビューにcustomCellとして実装する必要がありますか?それでもSTVを介してこれを行う方法を理解することはできません。

RangeSliderには、いくつかのプロパティを設定する必要があります。

  • float minimumValue;
  • float maximumValue;
  • float minimumRange;
  • float selectedMinimumValue;
  • float selectedMaximumValue;

プロパティ値を変更することにより、ユーザーの操作に応答します。

レンジスライダー:そのように見えます。

要するに私の問題:xibファイルなしでRangeSliderクラスをCustomCellとして実装する方法は?そして..SCUserDefaultsDefinitionを使用してcustomCellのuserInteractionを追跡することも可能ですか?

それが私のSTVを作成する方法です:

SCUserDefaultsDefinition *userDefaultsDef = [SCUserDefaultsDefinition definitionWithDictionaryKeyNamesString:@"Search Filter:(gender,ageRangeSlider,zip,country)"];
SCPropertyDefinition *genderDef = [userDefaultsDef propertyDefinitionWithName:@"gender"];
genderDef.title = @"Gender";
genderDef.required = TRUE;
genderDef.type = SCPropertyTypeSelection;
genderDef.attributes = [SCSelectionAttributes attributesWithItems:[NSArray arrayWithObjects:@"f", @"m", nil] allowMultipleSelection:NO allowNoSelection:NO];
genderDef.autoValidate = TRUE;

/*#### CUSTOMCELL IMPLEMENTATION HERE #### */

SCPropertyDefinition *zip = [userDefaultsDef propertyDefinitionWithName:@"zip"];
zip.title = @"Zip-Code";
zip.type = SCPropertyTypeNumericTextField;
zip.attributes = [SCNumericTextFieldAttributes attributesWithMinimumValue:[NSNumber numberWithInt:01] maximumValue:[NSNumber numberWithInt:99] allowFloatValue:NO];
[self.tableViewModel generateSectionsForUserDefaultsDefinition:userDefaultsDef];
SCTableViewSection *formSection = [self.tableViewModel sectionAtIndex:0];
formSection.cellActions.valueChanged = ^(SCTableViewCell *cell, NSIndexPath *indexPath)
{
     NSLog(@"\n\n*********** Key Binding Log ***********\n");
     NSLog(@"Value: %@\n", [cell boundValue]);
};

誰かが助けてくれたら素晴らしいと思います!本当に感謝しています!さらに詳しい情報が必要な場合は教えてください。

ありがとう、

ラース(私の悪い英語をお詫びします)

4

1 に答える 1

0

さて、問題は解決しました!

解決策は次 のとおりです。STVでcustomCellとしてcustomClassを追加するには、Classname / NibnameとcustomControlのタグをobjectBindingとして使用して、SCCustomPropertyDefinitionを定義する必要があります。

SCUserDefaultsDefinition *userDefaultsDef = [SCUserDefaultsDefinition definitionWithDictionaryKeyNamesString:@"Search Filter:(gender,ageRangeSlider,zip,country)"];

SCCustomPropertyDefinition * customControl = [SCCustomPropertyDefinition definitionWithName:@"ageRangeSlider" uiElementClass:[CustomControlClass class] objectBindingsString:@"1:selectedRange;"];
[userDefaultsDef insertPropertyDefinition:customControl atIndex:1];

新しいPropertyDefinitionを作成してUserDefaultsDefinitionに追加した後、PropertyDefinition(@ "1:selectedRange;")のObjectBindingStringを使用して、CustomControlClassの応答プロパティを構成できます。数値はカスタムセルの各コントロールのIBタグを表し、文字列はこのコントロールのResponseValueとして使用するプロパティを表します。

これが将来的に他の開発者に役立つことを願っています。

于 2012-11-27T10:09:02.660 に答える