Commit f1cfac16 authored by xwenliang's avatar xwenliang

update data structure

parent 3c8fc35e
...@@ -95,7 +95,6 @@ public class PickerViewModule extends ReactContextBaseJavaModule { ...@@ -95,7 +95,6 @@ public class PickerViewModule extends ReactContextBaseJavaModule {
Activity activity = getCurrentActivity(); Activity activity = getCurrentActivity();
if (activity != null && options.hasKey(PICKER_DATA)) { if (activity != null && options.hasKey(PICKER_DATA)) {
view = activity.getLayoutInflater().inflate(R.layout.popup_picker_view, null); view = activity.getLayoutInflater().inflate(R.layout.popup_picker_view, null);
pickerParent = (RelativeLayout) view.findViewById(R.id.pickerParent); pickerParent = (RelativeLayout) view.findViewById(R.id.pickerParent);
barLayout = (RelativeLayout) view.findViewById(R.id.barLayout); barLayout = (RelativeLayout) view.findViewById(R.id.barLayout);
cancelTV = (TextView) view.findViewById(R.id.cancel); cancelTV = (TextView) view.findViewById(R.id.cancel);
...@@ -218,15 +217,6 @@ public class PickerViewModule extends ReactContextBaseJavaModule { ...@@ -218,15 +217,6 @@ public class PickerViewModule extends ReactContextBaseJavaModule {
} }
} }
switch (options.getType(PICKER_DATA).name()) {
case "Map":
pickerViewLinkage.setVisibility(View.VISIBLE);
pickerViewAlone.setVisibility(View.GONE);
ReadableMap linkageData = options.getMap(PICKER_DATA);
if (linkageData != null) {
pickerViewLinkage.setLinkageData(linkageData, curSelectedList);
}
pickerViewLinkage.setIsLoop(isLoop);
if (options.hasKey(PICKER_BG_COLOR)) { if (options.hasKey(PICKER_BG_COLOR)) {
ReadableArray array = options.getArray(PICKER_BG_COLOR); ReadableArray array = options.getArray(PICKER_BG_COLOR);
for (int i = 0; i < array.size(); i++) { for (int i = 0; i < array.size(); i++) {
...@@ -236,8 +226,18 @@ public class PickerViewModule extends ReactContextBaseJavaModule { ...@@ -236,8 +226,18 @@ public class PickerViewModule extends ReactContextBaseJavaModule {
pickerColor[i] = array.getInt(i); pickerColor[i] = array.getInt(i);
} }
} }
pickerViewLinkage.setBackgroundColor(Color.argb(pickerColor[3], pickerColor[0], pickerColor[1], pickerColor[2]));
} }
ReadableArray pickerData = options.getArray(PICKER_DATA);
String name = pickerData.getType(0).name();
switch (name) {
case "Map":
pickerViewLinkage.setVisibility(View.VISIBLE);
pickerViewAlone.setVisibility(View.GONE);
pickerViewLinkage.setPickerData(pickerData, curSelectedList);
pickerViewLinkage.setIsLoop(isLoop);
pickerViewLinkage.setBackgroundColor(Color.argb(pickerColor[3], pickerColor[0], pickerColor[1], pickerColor[2]));
pickerViewLinkage.setOnSelectListener(new OnSelectedListener() { pickerViewLinkage.setOnSelectListener(new OnSelectedListener() {
@Override @Override
public void onSelected(ArrayList<String> selectedList) { public void onSelected(ArrayList<String> selectedList) {
...@@ -247,33 +247,13 @@ public class PickerViewModule extends ReactContextBaseJavaModule { ...@@ -247,33 +247,13 @@ public class PickerViewModule extends ReactContextBaseJavaModule {
}); });
pickerViewLinkage.setSelectValue(selectValue, curSelectedList); pickerViewLinkage.setSelectValue(selectValue, curSelectedList);
break; break;
case "Array": default:
pickerViewAlone.setVisibility(View.VISIBLE); pickerViewAlone.setVisibility(View.VISIBLE);
pickerViewLinkage.setVisibility(View.GONE); pickerViewLinkage.setVisibility(View.GONE);
ReadableArray aloneData = options.getArray(PICKER_DATA);
if (aloneData != null) { pickerViewAlone.setPickerData(pickerData, curSelectedList);
switch (aloneData.getType(0).name()) {
case "Array":
pickerViewAlone.setPickerViewDta(aloneData, curSelectedList);
break;
default:
pickerViewAlone.setAloneData(aloneData, curSelectedList);
break;
}
}
pickerViewAlone.setIsLoop(isLoop); pickerViewAlone.setIsLoop(isLoop);
if (options.hasKey(PICKER_BG_COLOR)) {
ReadableArray array = options.getArray(PICKER_BG_COLOR);
for (int i = 0; i < array.size(); i++) {
if (i == 3) {
pickerColor[i] = (int) (array.getDouble(i) * 255);
} else {
pickerColor[i] = array.getInt(i);
}
}
pickerViewAlone.setBackgroundColor(Color.argb(pickerColor[3], pickerColor[0], pickerColor[1], pickerColor[2])); pickerViewAlone.setBackgroundColor(Color.argb(pickerColor[3], pickerColor[0], pickerColor[1], pickerColor[2]));
}
pickerViewAlone.setOnSelectedListener(new OnSelectedListener() { pickerViewAlone.setOnSelectedListener(new OnSelectedListener() {
@Override @Override
...@@ -284,10 +264,10 @@ public class PickerViewModule extends ReactContextBaseJavaModule { ...@@ -284,10 +264,10 @@ public class PickerViewModule extends ReactContextBaseJavaModule {
}); });
pickerViewAlone.setSelectValue(selectValue, curSelectedList); pickerViewAlone.setSelectValue(selectValue, curSelectedList);
break; break;
} }
if (popupWindow == null) { if (popupWindow == null) {
popupWindow = new PopupWindow(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT); popupWindow = new PopupWindow(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT);
popupWindow.setBackgroundDrawable(new ColorDrawable()); popupWindow.setBackgroundDrawable(new ColorDrawable());
......
...@@ -43,7 +43,18 @@ public class PickerViewAlone extends LinearLayout { ...@@ -43,7 +43,18 @@ public class PickerViewAlone extends LinearLayout {
this.onSelectedListener = listener; this.onSelectedListener = listener;
} }
public void setAloneData(ReadableArray array, final ArrayList<String> curSelectedList) { public void setPickerData(ReadableArray array, final ArrayList<String> curSelectedList){
switch (array.getType(0).name()){
case "Array":
setMultipleData(array,curSelectedList);
break;
default:
setAloneData(array,curSelectedList);
break;
}
}
private void setAloneData(ReadableArray array, final ArrayList<String> curSelectedList) {
ArrayList<String> values = arrayToList(array); ArrayList<String> values = arrayToList(array);
final LoopView loopView = new LoopView(getContext()); final LoopView loopView = new LoopView(getContext());
LayoutParams params = new LayoutParams( LayoutParams params = new LayoutParams(
...@@ -69,8 +80,7 @@ public class PickerViewAlone extends LinearLayout { ...@@ -69,8 +80,7 @@ public class PickerViewAlone extends LinearLayout {
pickerViewAloneLayout.addView(loopView); pickerViewAloneLayout.addView(loopView);
} }
private void setMultipleData(ReadableArray array, final ArrayList<String> curSelectedList) {
public void setPickerViewDta(ReadableArray array, final ArrayList<String> curSelectedList) {
final String[] selectedItems = new String[array.size()]; final String[] selectedItems = new String[array.size()];
for (int i = 0; i < array.size(); i++) { for (int i = 0; i < array.size(); i++) {
switch (array.getType(i).name()) { switch (array.getType(i).name()) {
......
...@@ -73,10 +73,7 @@ public class PickerViewLinkage extends LinearLayout { ...@@ -73,10 +73,7 @@ public class PickerViewLinkage extends LinearLayout {
private ArrayList<String> twoList = new ArrayList<>(); private ArrayList<String> twoList = new ArrayList<>();
private ArrayList<String> threeList = new ArrayList<>(); private ArrayList<String> threeList = new ArrayList<>();
private ReadableArray array; private ArrayList<ReadableMap> data = new ArrayList<>();
private ReadableMap map;
private ReadableMap childMap;
private int selectOneIndex; private int selectOneIndex;
private int selectTwoIndex; private int selectTwoIndex;
...@@ -87,12 +84,20 @@ public class PickerViewLinkage extends LinearLayout { ...@@ -87,12 +84,20 @@ public class PickerViewLinkage extends LinearLayout {
} }
} }
public void setLinkageData(final ReadableMap map, final ArrayList<String> curSelectedList) { /**
this.map = map; * ReadableArray getMap will remove the item.
* <a href="https://github.com/facebook/react-native/issues/8557"></a>
* */
public void setPickerData(ReadableArray array, final ArrayList<String> curSelectedList) {
oneList.clear();
for (int i = 0; i < array.size(); i++) {
ReadableMap map = array.getMap(i);
data.add(map);
ReadableMapKeySetIterator iterator = map.keySetIterator(); ReadableMapKeySetIterator iterator = map.keySetIterator();
while (iterator.hasNextKey()) { if (iterator.hasNextKey()) {
String key = iterator.nextKey(); String oneValue = iterator.nextKey();
oneList.add(key); oneList.add(oneValue);
}
} }
checkItems(loopViewOne, oneList); checkItems(loopViewOne, oneList);
if (curSelectedList.size() > 0) { if (curSelectedList.size() > 0) {
...@@ -100,17 +105,14 @@ public class PickerViewLinkage extends LinearLayout { ...@@ -100,17 +105,14 @@ public class PickerViewLinkage extends LinearLayout {
} else { } else {
curSelectedList.add(0, oneList.get(0)); curSelectedList.add(0, oneList.get(0));
} }
String name = map.getType(oneList.get(0)).name();
switch (name) { ReadableArray childArray = data.get(0).getArray(oneList.get(0));
case "Map": String name = childArray.getType(0).name();
if (name.equals("Map")) {
setRow(3); setRow(3);
childMap = map.getMap(oneList.get(0));
ReadableMapKeySetIterator childIterator = childMap.keySetIterator();
twoList.clear(); twoList.clear();
while (childIterator.hasNextKey()) { getTwoListData();
String key = childIterator.nextKey();
twoList.add(key);
}
checkItems(loopViewTwo, twoList); checkItems(loopViewTwo, twoList);
if (curSelectedList.size() > 1) { if (curSelectedList.size() > 1) {
curSelectedList.set(1, twoList.get(0)); curSelectedList.set(1, twoList.get(0));
...@@ -118,9 +120,11 @@ public class PickerViewLinkage extends LinearLayout { ...@@ -118,9 +120,11 @@ public class PickerViewLinkage extends LinearLayout {
curSelectedList.add(1, twoList.get(0)); curSelectedList.add(1, twoList.get(0));
} }
array = childMap.getArray(twoList.get(0)); ReadableMap childMap = data.get(0).getArray(oneList.get(0)).getMap(0);
String key = childMap.keySetIterator().nextKey();
ReadableArray sunArray = childMap.getArray(key);
threeList.clear(); threeList.clear();
threeList = arrayToList(array); threeList = arrayToList(sunArray);
checkItems(loopViewThree, threeList); checkItems(loopViewThree, threeList);
if (curSelectedList.size() > 2) { if (curSelectedList.size() > 2) {
curSelectedList.set(2, threeList.get(0)); curSelectedList.set(2, threeList.get(0));
...@@ -133,20 +137,25 @@ public class PickerViewLinkage extends LinearLayout { ...@@ -133,20 +137,25 @@ public class PickerViewLinkage extends LinearLayout {
public void onItemSelected(String item, int index) { public void onItemSelected(String item, int index) {
selectOneIndex = index; selectOneIndex = index;
curSelectedList.set(0, item); curSelectedList.set(0, item);
childMap = map.getMap(item);
ReadableMapKeySetIterator childIterator = childMap.keySetIterator();
twoList.clear(); twoList.clear();
while (childIterator.hasNextKey()) { ReadableArray arr = data.get(index).getArray(item);
String key = childIterator.nextKey(); for (int i = 0; i < arr.size(); i++) {
twoList.add(key); ReadableMap map = arr.getMap(i);
ReadableMapKeySetIterator ite = map.keySetIterator();
if (ite.hasNextKey()) {
twoList.add(ite.nextKey());
}
} }
checkItems(loopViewTwo, twoList); checkItems(loopViewTwo, twoList);
curSelectedList.set(1, twoList.get(0)); curSelectedList.set(1, twoList.get(0));
array = childMap.getArray(twoList.get(0));
ReadableArray ar = data.get(index).getArray(item);
ReadableMap childMap = ar.getMap(0);
String key = childMap.keySetIterator().nextKey();
ReadableArray sunArray = childMap.getArray(key);
threeList.clear(); threeList.clear();
threeList = arrayToList(array); threeList = arrayToList(sunArray);
checkItems(loopViewThree, threeList); checkItems(loopViewThree, threeList);
curSelectedList.set(2, threeList.get(0)); curSelectedList.set(2, threeList.get(0));
...@@ -160,9 +169,13 @@ public class PickerViewLinkage extends LinearLayout { ...@@ -160,9 +169,13 @@ public class PickerViewLinkage extends LinearLayout {
@Override @Override
public void onItemSelected(String item, int index) { public void onItemSelected(String item, int index) {
selectTwoIndex = index; selectTwoIndex = index;
array = childMap.getArray(item);
ReadableArray arr = data.get(selectOneIndex).getArray(oneList.get(selectOneIndex));
ReadableMap childMap = arr.getMap(index);
String key = childMap.keySetIterator().nextKey();
ReadableArray sunArray = childMap.getArray(key);
threeList.clear(); threeList.clear();
threeList = arrayToList(array); threeList = arrayToList(sunArray);
checkItems(loopViewThree, threeList); checkItems(loopViewThree, threeList);
curSelectedList.set(0, oneList.get(selectOneIndex)); curSelectedList.set(0, oneList.get(selectOneIndex));
...@@ -185,15 +198,15 @@ public class PickerViewLinkage extends LinearLayout { ...@@ -185,15 +198,15 @@ public class PickerViewLinkage extends LinearLayout {
} }
} }
}); });
break; } else {
case "Array":
setRow(2); setRow(2);
loopViewOne.setListener(new OnItemSelectedListener() { loopViewOne.setListener(new OnItemSelectedListener() {
@Override @Override
public void onItemSelected(String item, int index) { public void onItemSelected(String item, int index) {
selectOneIndex = index; selectOneIndex = index;
array = map.getArray(item); ReadableArray arr = data.get(index).getArray(item);
twoList = arrayToList(array); twoList.clear();
twoList = arrayToList(arr);
checkItems(loopViewTwo, twoList); checkItems(loopViewTwo, twoList);
curSelectedList.set(0, item); curSelectedList.set(0, item);
curSelectedList.set(1, twoList.get(0)); curSelectedList.set(1, twoList.get(0));
...@@ -203,10 +216,14 @@ public class PickerViewLinkage extends LinearLayout { ...@@ -203,10 +216,14 @@ public class PickerViewLinkage extends LinearLayout {
} }
}); });
array = map.getArray(oneList.get(0)); twoList.clear();
twoList = arrayToList(array); twoList = arrayToList(childArray);
checkItems(loopViewTwo, twoList); checkItems(loopViewTwo, twoList);
if (curSelectedList.size() > 1) {
curSelectedList.set(1, twoList.get(0));
} else {
curSelectedList.add(1, twoList.get(0)); curSelectedList.add(1, twoList.get(0));
}
loopViewTwo.setListener(new OnItemSelectedListener() { loopViewTwo.setListener(new OnItemSelectedListener() {
@Override @Override
public void onItemSelected(String item, int index) { public void onItemSelected(String item, int index) {
...@@ -217,9 +234,6 @@ public class PickerViewLinkage extends LinearLayout { ...@@ -217,9 +234,6 @@ public class PickerViewLinkage extends LinearLayout {
} }
} }
}); });
break;
default:
break;
} }
} }
...@@ -258,39 +272,26 @@ public class PickerViewLinkage extends LinearLayout { ...@@ -258,39 +272,26 @@ public class PickerViewLinkage extends LinearLayout {
} else { } else {
switch (selectValue.length) { switch (selectValue.length) {
case 1: case 1:
if (loopViewOne.hasItem(selectValue[0])) { selectOneLoop(selectValue, curSelectedList);
selectOneIndex = loopViewOne.getItemPosition(selectValue[0]);
loopViewOne.setSelectedPosition(selectOneIndex);
curSelectedList.set(0, loopViewOne.getIndexItem(selectOneIndex));
} else {
loopViewOne.setSelectedPosition(0);
curSelectedList.set(0, loopViewOne.getIndexItem(0));
}
switch (curRow) { switch (curRow) {
case 3: case 3:
childMap = map.getMap(oneList.get(selectOneIndex));
ReadableMapKeySetIterator childIterator = childMap.keySetIterator();
twoList.clear();
while (childIterator.hasNextKey()) {
String key = childIterator.nextKey();
twoList.add(key);
}
twoList.clear();
getTwoListData();
loopViewTwo.setItems(twoList); loopViewTwo.setItems(twoList);
loopViewTwo.setSelectedPosition(0); loopViewTwo.setSelectedPosition(0);
curSelectedList.set(1, loopViewTwo.getIndexItem(0)); curSelectedList.set(1, loopViewTwo.getIndexItem(0));
array = childMap.getArray(twoList.get(0));
threeList.clear(); threeList.clear();
threeList = arrayToList(array); getThreeListData();
loopViewThree.setItems(threeList); loopViewThree.setItems(threeList);
loopViewThree.setSelectedPosition(0); loopViewThree.setSelectedPosition(0);
curSelectedList.set(2, loopViewThree.getIndexItem(0)); curSelectedList.set(2, loopViewThree.getIndexItem(0));
break; break;
case 2: case 2:
array = map.getArray(oneList.get(selectOneIndex)); twoList.clear();
twoList = arrayToList(array); getAllTwoListData();
loopViewTwo.setItems(twoList); loopViewTwo.setItems(twoList);
loopViewTwo.setSelectedPosition(0); loopViewTwo.setSelectedPosition(0);
curSelectedList.set(1, loopViewTwo.getIndexItem(0)); curSelectedList.set(1, loopViewTwo.getIndexItem(0));
...@@ -300,35 +301,15 @@ public class PickerViewLinkage extends LinearLayout { ...@@ -300,35 +301,15 @@ public class PickerViewLinkage extends LinearLayout {
case 2: case 2:
switch (curRow) { switch (curRow) {
case 3: case 3:
if (loopViewOne.hasItem(selectValue[0])) { selectOneLoop(selectValue, curSelectedList);
selectOneIndex = loopViewOne.getItemPosition(selectValue[0]);
loopViewOne.setSelectedPosition(selectOneIndex);
curSelectedList.set(0, loopViewOne.getIndexItem(selectOneIndex));
} else {
loopViewOne.setSelectedPosition(0);
curSelectedList.set(0, loopViewOne.getIndexItem(0));
}
childMap = map.getMap(oneList.get(selectOneIndex));
ReadableMapKeySetIterator childIterator = childMap.keySetIterator();
twoList.clear(); twoList.clear();
while (childIterator.hasNextKey()) { getTwoListData();
String key = childIterator.nextKey(); selectTwoLoop(selectValue,curSelectedList);
twoList.add(key);
}
loopViewTwo.setItems(twoList);
if (loopViewTwo.hasItem(selectValue[1])) {
selectTwoIndex = loopViewTwo.getItemPosition(selectValue[1]);
loopViewTwo.setSelectedPosition(selectTwoIndex);
curSelectedList.set(1, loopViewTwo.getIndexItem(selectTwoIndex));
} else {
loopViewTwo.setSelectedPosition(0);
curSelectedList.set(1, loopViewTwo.getIndexItem(0));
}
array = childMap.getArray(twoList.get(selectTwoIndex));
threeList.clear(); threeList.clear();
threeList = arrayToList(array); getThreeListData();
loopViewThree.setItems(threeList); loopViewThree.setItems(threeList);
loopViewThree.setSelectedPosition(0); loopViewThree.setSelectedPosition(0);
curSelectedList.set(2, loopViewThree.getIndexItem(0)); curSelectedList.set(2, loopViewThree.getIndexItem(0));
...@@ -344,35 +325,63 @@ public class PickerViewLinkage extends LinearLayout { ...@@ -344,35 +325,63 @@ public class PickerViewLinkage extends LinearLayout {
private void selectValues(String[] values, final ArrayList<String> curSelectedList) { private void selectValues(String[] values, final ArrayList<String> curSelectedList) {
switch (values.length) { switch (values.length) {
case 3: case 3:
selectOneLoop(values, curSelectedList);
twoList.clear();
getTwoListData();
selectTwoLoop(values, curSelectedList);
threeList.clear();
getThreeListData();
selectThreeLoop(values, curSelectedList);
break;
case 2:
selectOneLoop(values, curSelectedList);
twoList.clear();
getAllTwoListData();
selectTwoLoop(values, curSelectedList);
break;
default:
break;
}
}
/**
* 设置第一个滚轮选中的值
*/
private void selectOneLoop(String[] values, final ArrayList<String> curSelectedList) {
if (loopViewOne.hasItem(values[0])) { if (loopViewOne.hasItem(values[0])) {
selectOneIndex = loopViewOne.getItemPosition(values[0]); selectOneIndex = loopViewOne.getItemPosition(values[0]);
loopViewOne.setSelectedPosition(selectOneIndex); loopViewOne.setSelectedPosition(selectOneIndex);
curSelectedList.set(0, loopViewOne.getIndexItem(selectOneIndex)); curSelectedList.set(0, loopViewOne.getIndexItem(selectOneIndex));
} else { } else {
selectOneIndex = 0;
loopViewOne.setSelectedPosition(0); loopViewOne.setSelectedPosition(0);
curSelectedList.set(0, loopViewOne.getIndexItem(0)); curSelectedList.set(0, loopViewOne.getIndexItem(0));
} }
childMap = map.getMap(oneList.get(selectOneIndex));
ReadableMapKeySetIterator childIterator = childMap.keySetIterator();
twoList.clear();
while (childIterator.hasNextKey()) {
String key = childIterator.nextKey();
twoList.add(key);
} }
/**
* 设置第二个滚轮选中的值
*/
private void selectTwoLoop(String[] values, final ArrayList<String> curSelectedList) {
loopViewTwo.setItems(twoList); loopViewTwo.setItems(twoList);
if (loopViewTwo.hasItem(values[1])) { if (loopViewTwo.hasItem(values[1])) {
selectTwoIndex = loopViewTwo.getItemPosition(values[1]); selectTwoIndex = loopViewTwo.getItemPosition(values[1]);
loopViewTwo.setSelectedPosition(selectTwoIndex); loopViewTwo.setSelectedPosition(selectTwoIndex);
curSelectedList.set(1, loopViewTwo.getIndexItem(selectTwoIndex)); curSelectedList.set(1, loopViewTwo.getIndexItem(selectTwoIndex));
} else { } else {
selectTwoIndex = 0;
loopViewTwo.setSelectedPosition(0); loopViewTwo.setSelectedPosition(0);
curSelectedList.set(1, loopViewTwo.getIndexItem(0)); curSelectedList.set(1, loopViewTwo.getIndexItem(0));
} }
}
array = childMap.getArray(twoList.get(selectTwoIndex)); /**
threeList.clear(); * 设置第三个滚轮选中的值
threeList = arrayToList(array); */
private void selectThreeLoop(String[] values, final ArrayList<String> curSelectedList) {
loopViewThree.setItems(threeList); loopViewThree.setItems(threeList);
if (loopViewThree.hasItem(values[2])) { if (loopViewThree.hasItem(values[2])) {
int selectThreeIndex = loopViewThree.getItemPosition(values[2]); int selectThreeIndex = loopViewThree.getItemPosition(values[2]);
...@@ -382,40 +391,58 @@ public class PickerViewLinkage extends LinearLayout { ...@@ -382,40 +391,58 @@ public class PickerViewLinkage extends LinearLayout {
loopViewThree.setSelectedPosition(0); loopViewThree.setSelectedPosition(0);
curSelectedList.set(2, loopViewThree.getIndexItem(0)); curSelectedList.set(2, loopViewThree.getIndexItem(0));
} }
break;
case 2:
if (loopViewOne.hasItem(values[0])) {
selectOneIndex = loopViewOne.getItemPosition(values[0]);
loopViewOne.setSelectedPosition(selectOneIndex);
curSelectedList.set(0, loopViewOne.getIndexItem(selectOneIndex));
} else {
loopViewOne.setSelectedPosition(0);
curSelectedList.set(0, loopViewOne.getIndexItem(0));
} }
array = map.getArray(oneList.get(selectOneIndex)); /**
twoList = arrayToList(array); * 只有两个滚轮
loopViewTwo.setItems(twoList); * 获取第二个滚轮的值
if (loopViewTwo.hasItem(values[1])) { */
selectTwoIndex = loopViewTwo.getItemPosition(values[1]); private void getAllTwoListData() {
loopViewTwo.setSelectedPosition(selectTwoIndex); ReadableArray arr = data.get(selectOneIndex).getArray(oneList.get(selectOneIndex));
curSelectedList.set(1, loopViewTwo.getIndexItem(selectTwoIndex)); twoList = arrayToList(arr);
} else { }
loopViewTwo.setSelectedPosition(0);
curSelectedList.set(1, loopViewTwo.getIndexItem(0)); /**
* 有三个滚轮
* 获取第二个滚轮的值
*/
private void getTwoListData() {
ReadableArray childArray = data.get(selectOneIndex).getArray(oneList.get(selectOneIndex));
for (int i = 0; i < childArray.size(); i++) {
ReadableMap map = childArray.getMap(i);
ReadableMapKeySetIterator iterator = map.keySetIterator();
if (iterator.hasNextKey()) {
twoList.add(iterator.nextKey());
} }
break;
default:
break;
} }
} }
/**
* 获取第三个滚轮的值
* */
private void getThreeListData(){
//{ NativeMap: {"b":[{"b1":[11,22,33,44]},{"b2":[55,66,77,88]},{"b3":[99,1010,1111,1212]}]} }
ReadableMap childMap = data.get(selectOneIndex).getArray(oneList.get(selectOneIndex)).getMap(selectTwoIndex);
String key = childMap.keySetIterator().nextKey();
ReadableArray sunArray = childMap.getArray(key);
threeList = arrayToList(sunArray);
}
public void setIsLoop(boolean isLoop) { public void setIsLoop(boolean isLoop) {
if (!isLoop) { if (!isLoop) {
switch (curRow) {
case 2:
loopViewOne.setNotLoop();
loopViewTwo.setNotLoop();
break;
case 3:
loopViewOne.setNotLoop(); loopViewOne.setNotLoop();
loopViewTwo.setNotLoop(); loopViewTwo.setNotLoop();
loopViewThree.setNotLoop(); loopViewThree.setNotLoop();
break;
}
} }
} }
......
...@@ -22,12 +22,15 @@ typedef void(^backBolock)(NSDictionary * ); ...@@ -22,12 +22,15 @@ typedef void(^backBolock)(NSDictionary * );
@property (strong, nonatomic) NSDictionary *pickerDic;//一开始进来的字典 @property (strong, nonatomic) NSDictionary *pickerDic;//一开始进来的字典
@property (strong, nonatomic) NSArray *provinceArray;//省、市 @property(strong,nonatomic)NSArray *dataDry;//一进来的就没有数组和字典的区别肯定是一个字典
@property (strong, nonatomic) NSArray *cityArray;//市,县
@property (strong, nonatomic) NSMutableArray *provinceArray;//省、市
@property (strong, nonatomic) NSMutableArray *cityArray;//市,县
@property (strong, nonatomic) NSArray *townArray;//县,区 @property (strong, nonatomic) NSArray *townArray;//县,区
@property (strong, nonatomic) NSDictionary *selectedDic;//3级联动时候用到的 @property(strong,nonatomic)NSArray *selectthreeAry;
@property (strong,nonatomic)NSArray *selectArry;//2级联动时候用的 @property (strong,nonatomic)NSArray *selectArry;//2级联动时候用的
@property (strong,nonatomic)UIButton *leftBtn;//取消 @property (strong,nonatomic)UIButton *leftBtn;//取消
...@@ -38,8 +41,6 @@ typedef void(^backBolock)(NSDictionary * ); ...@@ -38,8 +41,6 @@ typedef void(^backBolock)(NSDictionary * );
@property(strong,nonatomic)NSString *rightStr; @property(strong,nonatomic)NSString *rightStr;
//用来判断进来的类型
@property(strong,nonatomic)id value;
@property(assign,nonatomic)BOOL Correlation;//判断有没有没有关联 @property(assign,nonatomic)BOOL Correlation;//判断有没有没有关联
...@@ -52,10 +53,20 @@ typedef void(^backBolock)(NSDictionary * ); ...@@ -52,10 +53,20 @@ typedef void(^backBolock)(NSDictionary * );
@property(assign,nonatomic)BOOL noArryElementBool; @property(assign,nonatomic)BOOL noArryElementBool;
@property(strong,nonatomic)NSMutableArray *infoArry;
//创建一个数组 接收进来的选择Value //创建一个数组 接收进来的选择Value
@property(strong,nonatomic)NSArray *selectValueArry; @property(strong,nonatomic)NSArray *selectValueArry;
//创建一个下角标记录是第几行 来一进来判断第一行被选中 当进来的是关联两行的逻辑的时候 或者三行关联的时候取第二行做记录
@property(assign,nonatomic)NSInteger num;
//创建一个下角标 第三行做记录
@property(assign,nonatomic)NSInteger threenum;
-(instancetype)initWithFrame:(CGRect)frame dic:(NSDictionary *)dic leftStr:(NSString *)leftStr centerStr:(NSString *)centerStr rightStr:(NSString *)rightStr topbgColor:(NSArray *)topbgColor bottombgColor:(NSArray *)bottombgColor leftbtnbgColor:(NSArray *)leftbtnbgColor rightbtnbgColor:(NSArray *)rightbtnbgColor centerbtnColor:(NSArray *)centerbtnColor selectValueArry:(NSArray *)selectValueArry; -(instancetype)initWithFrame:(CGRect)frame dic:(NSDictionary *)dic leftStr:(NSString *)leftStr centerStr:(NSString *)centerStr rightStr:(NSString *)rightStr topbgColor:(NSArray *)topbgColor bottombgColor:(NSArray *)bottombgColor leftbtnbgColor:(NSArray *)leftbtnbgColor rightbtnbgColor:(NSArray *)rightbtnbgColor centerbtnColor:(NSArray *)centerbtnColor selectValueArry:(NSArray *)selectValueArry;
......
...@@ -16,6 +16,8 @@ ...@@ -16,6 +16,8 @@
if (self) if (self)
{ {
self.backArry=[[NSMutableArray alloc]init]; self.backArry=[[NSMutableArray alloc]init];
self.provinceArray=[[NSMutableArray alloc]init];
self.cityArray=[[NSMutableArray alloc]init];
self.selectValueArry=selectValueArry; self.selectValueArry=selectValueArry;
self.pickerDic=dic; self.pickerDic=dic;
self.leftStr=leftStr; self.leftStr=leftStr;
...@@ -83,13 +85,6 @@ ...@@ -83,13 +85,6 @@
[self addSubview:self.pick]; [self addSubview:self.pick];
self.pick.backgroundColor=[self colorWith:bottombgColor]; self.pick.backgroundColor=[self colorWith:bottombgColor];
if (_Correlation) {
NSDictionary *dic=(NSDictionary *)self.value;
self.selectedDic =[dic objectForKey:[self.provinceArray objectAtIndex:0]];
}
} }
//返回显示的列数 //返回显示的列数
-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView -(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
...@@ -194,37 +189,48 @@ ...@@ -194,37 +189,48 @@
//表示一个数组 特殊情况 //表示一个数组 特殊情况
return 110; return 110;
}else{ }else{
NSArray *arry=(NSArray *)self.value;
return SCREEN_WIDTH/arry.count; return SCREEN_WIDTH/self.dataDry.count;
} }
} }
} }
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component { - (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
if (!row) {
row=0;
}
[self.backArry removeAllObjects]; [self.backArry removeAllObjects];
[self.infoArry removeAllObjects];
if (_Correlation) { if (_Correlation) {
//这里是关联的 //这里是关联的
if ([_numberCorrela isEqualToString:@"three"]) {
if ([_numberCorrela isEqualToString:@"three"]) {
if (component == 0) if (component == 0)
{ {
NSDictionary *dic=(NSDictionary *)self.value; [self.cityArray removeAllObjects];
NSInteger setline=[_pick selectedRowInComponent:0]; NSInteger setline=[_pick selectedRowInComponent:0];
if (setline) { if (setline) {
self.selectedDic =[dic objectForKey:[self.provinceArray objectAtIndex:setline]];
self.selectthreeAry =[[self.dataDry objectAtIndex:setline]objectForKey:[self.provinceArray objectAtIndex:setline]];
}else{ }else{
self.selectedDic =[dic objectForKey:[self.provinceArray objectAtIndex:row]];
}
if (self.selectedDic) { setline=0;
self.cityArray = [self.selectedDic allKeys]; self.selectthreeAry =[[self.dataDry objectAtIndex:0] objectForKey:[self.provinceArray objectAtIndex:0]];
}
if (self.selectthreeAry) {
//遍历数组
for (NSInteger i=0; i<self.selectthreeAry.count; i++) {
NSDictionary *dic=self.selectthreeAry[i];
NSArray *ary=[dic allKeys];
[self.cityArray addObject:[ary firstObject]];
}
} }
else else
{ {
...@@ -233,66 +239,65 @@ ...@@ -233,66 +239,65 @@
if (self.cityArray.count > 0) if (self.cityArray.count > 0)
{ {
NSInteger oldrow=[self.pick selectedRowInComponent:1]; self.townArray=[[self.selectthreeAry objectAtIndex:0]objectForKey:[self.cityArray objectAtIndex:0]];
if (oldrow) {
self.townArray=[self.selectedDic objectForKey:[self.cityArray objectAtIndex:oldrow]];
}else{
row=0;
self.townArray=[self.selectedDic objectForKey:[self.cityArray objectAtIndex:row]];
}
} }
else else
{ {
self.townArray = nil; self.townArray = nil;
} }
}
[pickerView selectedRowInComponent:1];
[pickerView reloadAllComponents]; [pickerView reloadAllComponents];
[pickerView selectedRowInComponent:2]; [pickerView selectRow:0 inComponent:1 animated:YES];
[pickerView selectRow:0 inComponent:2 animated:YES];
}
if (component == 1) if (component == 1)
{ {
if (self.selectedDic && self.cityArray.count > 0) NSInteger setline=[_pick selectedRowInComponent:0];
{
self.townArray=[self.selectedDic objectForKey:[self.cityArray objectAtIndex:row]]; if (setline) {
}
else
{
self.townArray = nil;
} self.selectthreeAry =[[self.dataDry objectAtIndex:setline]objectForKey:[self.provinceArray objectAtIndex:setline]];
[pickerView selectRow:1 inComponent:2 animated:YES];
NSLog(@"%@",_selectthreeAry);
self.townArray=[[self.selectthreeAry objectAtIndex:row]objectForKey:[self.cityArray objectAtIndex:row]];
}else{
setline=0;
self.selectthreeAry =[[self.dataDry objectAtIndex:0] objectForKey:[self.provinceArray objectAtIndex:0]];
//NSLog(@"%ld",(long)row);
self.townArray=[[self.selectthreeAry objectAtIndex:row]objectForKey:[self.cityArray objectAtIndex:row]];
} }
[pickerView reloadComponent:2]; [pickerView reloadAllComponents];
[pickerView selectRow:0 inComponent:2 animated:YES];
}
}else if ([_numberCorrela isEqualToString:@"two"]){ }else if ([_numberCorrela isEqualToString:@"two"]){
if (component == 0) if (component == 0)
{ {
NSDictionary *dic=(NSDictionary *)self.value; [self.cityArray removeAllObjects];
self.selectArry =[dic objectForKey:[self.provinceArray objectAtIndex:row]]; self.selectArry =[[self.dataDry objectAtIndex:row]objectForKey:[self.provinceArray objectAtIndex:row]];
if (self.selectArry.count>0) { if (self.selectArry.count>0) {
self.cityArray = self.selectArry; [self.cityArray addObjectsFromArray:self.selectArry];
} }
else else
{ {
self.cityArray = nil; self.cityArray = nil;
} }
} }
[pickerView selectedRowInComponent:1];
[pickerView reloadComponent:1]; [pickerView reloadComponent:1];
[pickerView selectRow:0 inComponent:1 animated:YES];
} }
} }
//返回选择的值就可以了 //返回选择的值就可以了
...@@ -313,23 +318,26 @@ ...@@ -313,23 +318,26 @@
NSString *a=[self.provinceArray objectAtIndex:[self.pick selectedRowInComponent:0]]; NSString *a=[self.provinceArray objectAtIndex:[self.pick selectedRowInComponent:0]];
NSString *b=[self.cityArray objectAtIndex:[self.pick selectedRowInComponent:1]]; NSString *b=[self.cityArray objectAtIndex:[self.pick selectedRowInComponent:1]];
NSLog(@"%@---%@",a,b); // NSLog(@"%@---%@",a,b);
[self.backArry addObject:a]; [self.backArry addObject:a];
[self.backArry addObject:b]; [self.backArry addObject:b];
} }
}else }else
{ {
if (_noArryElementBool) { if (_noArryElementBool) {
[self.backArry addObject:[self.noCorreArry objectAtIndex:row]]; [self.backArry addObject:[self.noCorreArry objectAtIndex:row]];
}else{ }else{
//无关联的,直接给三个选项就行 //无关联的,直接给三个选项就行
for (NSInteger i=0; i<self.noCorreArry.count; i++) { for (NSInteger i=0; i<self.noCorreArry.count; i++) {
NSArray *eachAry=self.noCorreArry[i]; NSArray *eachAry=self.noCorreArry[i];
[self.backArry addObject:[eachAry objectAtIndex:[self.pick selectedRowInComponent:i]]]; [self.backArry addObject:[eachAry objectAtIndex:[self.pick selectedRowInComponent:i]]];
} }
...@@ -346,71 +354,102 @@ ...@@ -346,71 +354,102 @@
-(void)getStyle -(void)getStyle
{ {
self.value=[self.pickerDic objectForKey:@"pickerData"]; self.dataDry=[self.pickerDic objectForKey:@"pickerData"];
if ([self.value isKindOfClass:[NSArray class]]) { id firstobject=[self.dataDry firstObject];
if ([firstobject isKindOfClass:[NSArray class]]) {
_Correlation=NO; _Correlation=NO;
}else if ([self.value isKindOfClass:[NSDictionary class]]){ }else if ([firstobject isKindOfClass:[NSDictionary class]]){
//_Correlation为YES的话是关联的情况 为NO的话 是不关联的情况
_Correlation=YES; _Correlation=YES;
NSDictionary *dic=(NSDictionary *)self.value; NSDictionary *dic=(NSDictionary *)firstobject;
NSArray * twoOrthree=[dic allKeys];
NSArray *dicValue=[dic allValues];
id fistObjct=[dicValue firstObject]; id scendObjct=[[dic objectForKey:[twoOrthree firstObject]] firstObject];
if ([fistObjct isKindOfClass:[NSDictionary class]]) { if ([scendObjct isKindOfClass:[NSDictionary class]]) {
_numberCorrela=@"three"; _numberCorrela=@"three";
}else if ([fistObjct isKindOfClass:[NSArray class]]){ }else{
_numberCorrela=@"two"; _numberCorrela=@"two";
} }
} }
} }
-(void)getnumStyle{ -(void)getnumStyle{
if (_Correlation) { if (_Correlation) {
//这里是关联的 //这里是关联的
if ([_numberCorrela isEqualToString:@"three"]) { if ([_numberCorrela isEqualToString:@"three"]) {
//省 市 //省 市
NSDictionary *dic=(NSDictionary *)self.value; for (NSInteger i=0; i<self.dataDry.count; i++) {
NSDictionary *dic=[self.dataDry objectAtIndex:i];
NSArray *ary=[dic allKeys];
[self.provinceArray addObject:[ary firstObject]];
}
NSDictionary *dic=[self.dataDry firstObject];
NSArray *ary=[dic objectForKey:[self.provinceArray objectAtIndex:0]];
self.provinceArray = [dic allKeys];
if (self.provinceArray.count > 0) { if (self.provinceArray.count > 0) {
self.cityArray = [[dic objectForKey:[self.provinceArray objectAtIndex:0]] allKeys]; for (NSInteger i=0; i<ary.count; i++) {
NSDictionary *dic=[ary objectAtIndex:i];
NSArray *ary=[dic allKeys];
[self.cityArray addObject:[ary firstObject]];
}
} }
if (self.cityArray.count > 0) { if (self.cityArray.count > 0) {
self.townArray = [[dic objectForKey:[self.provinceArray objectAtIndex:0]] objectForKey:[self.cityArray objectAtIndex:0]]; NSDictionary *dic=[ary firstObject];
self.townArray=[dic objectForKey:[self.cityArray firstObject]];
} }
}else if ([_numberCorrela isEqualToString:@"two"]){ }else if ([_numberCorrela isEqualToString:@"two"]){
NSDictionary *dic=(NSDictionary *)self.value; for (NSInteger i=0; i<self.dataDry.count; i++) {
NSDictionary *dic=[self.dataDry objectAtIndex:i];
self.provinceArray = [dic allKeys]; NSArray *ary=[dic allKeys];
self.cityArray=[dic objectForKey:[self.provinceArray objectAtIndex:0]]; [self.provinceArray addObject:[ary firstObject]];
}
[self.cityArray addObjectsFromArray:[[self.dataDry objectAtIndex:0] objectForKey:[self.provinceArray objectAtIndex:0]]];
} }
}else }else
{ {
//这里是不关联的 //这里是不关联的
self.noCorreArry=(NSArray *)self.value; self.noCorreArry=self.dataDry;
id noArryElement=[self.noCorreArry firstObject];
id noArryElement=[self.dataDry firstObject];
if ([noArryElement isKindOfClass:[NSArray class]]) { if ([noArryElement isKindOfClass:[NSArray class]]) {
_noArryElementBool=NO; _noArryElementBool=NO;
}else{ }else{
//这里为yes表示里面就就一行数据 表示的是只有一行的特殊情况
_noArryElementBool=YES; _noArryElementBool=YES;
} }
} }
...@@ -475,14 +514,13 @@ ...@@ -475,14 +514,13 @@
{ {
if (_Correlation) { if (_Correlation) {
//关联的一开始的默认选择行数 //关联的一开始的默认选择行数
if ([_numberCorrela isEqualToString:@"three"]) {
NSDictionary *dic=(NSDictionary *)self.value; [self selectValueThree];
if ([_numberCorrela isEqualToString:@"three"]) {
[self selectValueThree:dic];
}else if ([_numberCorrela isEqualToString:@"two"]){ }else if ([_numberCorrela isEqualToString:@"two"]){
[self selectValueTwo:dic]; [self selectValueTwo];
} }
}else{ }else{
//一行的时候 //一行的时候
...@@ -490,23 +528,34 @@ ...@@ -490,23 +528,34 @@
} }
} }
//三行时候的选择哪个的逻辑 //三行时候的选择哪个的逻辑
-(void)selectValueThree:(NSDictionary *)dic -(void)selectValueThree
{ {
NSString *selectStr=[NSString stringWithFormat:@"%@",self.selectValueArry.firstObject]; NSString *selectStr=[NSString stringWithFormat:@"%@",self.selectValueArry.firstObject];
for (NSInteger i=0; i<self.provinceArray.count; i++) { for (NSInteger i=0; i<self.provinceArray.count; i++) {
NSString *str=[NSString stringWithFormat:@"%@",[self.provinceArray objectAtIndex:i]]; NSString *str=[NSString stringWithFormat:@"%@",[self.provinceArray objectAtIndex:i]];
if ([selectStr isEqualToString:str]) { if ([selectStr isEqualToString:str]) {
_num=i;
[_pick selectRow:i inComponent:0 animated:NO]; [_pick selectRow:i inComponent:0 animated:NO];
break; break;
} }
} }
NSArray *selecityAry = [[dic objectForKey:selectStr] allKeys]; NSArray *selecityAry = [[self.dataDry objectAtIndex:_num] objectForKey:selectStr];
if (selecityAry.count>0) { if (selecityAry.count>0) {
self.cityArray=selecityAry;
[self.cityArray removeAllObjects];
for (NSInteger i=0; i<selecityAry.count; i++) {
NSDictionary *dic=selecityAry[i];
NSArray *ary=[dic allKeys];
[self.cityArray addObject:[ary firstObject]];
}
} }
NSString *selectStrTwo; NSString *selectStrTwo;
...@@ -517,20 +566,21 @@ ...@@ -517,20 +566,21 @@
NSString *str=[NSString stringWithFormat:@"%@",[self.cityArray objectAtIndex:i]]; NSString *str=[NSString stringWithFormat:@"%@",[self.cityArray objectAtIndex:i]];
if ([selectStrTwo isEqualToString:str]) { if ([selectStrTwo isEqualToString:str]) {
_threenum=i;
[_pick selectRow:i inComponent:1 animated:NO]; [_pick selectRow:i inComponent:1 animated:NO];
break; break;
} }
} }
NSDictionary *threeDic=[dic objectForKey:[self.selectValueArry firstObject]]; if (selecityAry.count>0) {
if (threeDic) {
self.selectedDic=threeDic;
if (self.selectValueArry.count>1) { if (self.selectValueArry.count>1) {
NSArray *arry =[threeDic objectForKey:[self.selectValueArry objectAtIndex:1]]; NSArray *arry =[[selecityAry objectAtIndex:_threenum] objectForKey:[self.selectValueArry objectAtIndex:1]];
if (arry.count>0) { if (arry.count>0) {
self.townArray=arry; self.townArray=arry;
...@@ -552,10 +602,9 @@ ...@@ -552,10 +602,9 @@
} }
} }
[_pick reloadAllComponents]; [_pick reloadAllComponents];
} }
//两行时候的选择哪个的逻辑 //两行时候的选择哪个的逻辑
-(void)selectValueTwo:(NSDictionary *)dic -(void)selectValueTwo
{ {
NSString *selectStr=[NSString stringWithFormat:@"%@",self.selectValueArry.firstObject]; NSString *selectStr=[NSString stringWithFormat:@"%@",self.selectValueArry.firstObject];
...@@ -563,21 +612,30 @@ ...@@ -563,21 +612,30 @@
for (NSInteger i=0; i<self.provinceArray.count; i++) { for (NSInteger i=0; i<self.provinceArray.count; i++) {
NSString *str=[NSString stringWithFormat:@"%@",[self.provinceArray objectAtIndex:i]]; NSString *str=[NSString stringWithFormat:@"%@",[self.provinceArray objectAtIndex:i]];
if ([selectStr isEqualToString:str]) { if ([selectStr isEqualToString:str]) {
[_pick selectRow:i inComponent:0 animated:NO]; [_pick selectRow:i inComponent:0 animated:NO];
_num=i;
break; break;
} }
} }
if ([dic objectForKey:selectStr]) { NSArray *twoArry=[[self.dataDry objectAtIndex:_num]objectForKey:selectStr];
self.cityArray =[dic objectForKey:selectStr];
if (twoArry&&twoArry.count>0) {
[self.cityArray removeAllObjects];
[self.cityArray addObjectsFromArray:twoArry];
} }
NSString *selectTwoStr; NSString *selectTwoStr;
if (self.selectValueArry.count>1) { if (self.selectValueArry.count>1) {
selectTwoStr =[NSString stringWithFormat:@"%@",[self.selectValueArry objectAtIndex:1]]; selectTwoStr =[NSString stringWithFormat:@"%@",[self.selectValueArry objectAtIndex:1]];
} }
for (NSInteger i=0; i<self.cityArray.count; i++) { for (NSInteger i=0; i<self.cityArray.count; i++) {
NSString *str=[NSString stringWithFormat:@"%@",[self.cityArray objectAtIndex:i]]; NSString *str=[NSString stringWithFormat:@"%@",[self.cityArray objectAtIndex:i]];
if ([selectTwoStr isEqualToString:str]) { if ([selectTwoStr isEqualToString:str]) {
[_pick selectRow:i inComponent:1 animated:NO]; [_pick selectRow:i inComponent:1 animated:NO];
...@@ -585,6 +643,7 @@ ...@@ -585,6 +643,7 @@
break; break;
} }
} }
[_pick reloadAllComponents]; [_pick reloadAllComponents];
} }
//一行时候的选择哪个的逻辑 //一行时候的选择哪个的逻辑
...@@ -689,7 +748,7 @@ ...@@ -689,7 +748,7 @@
} }
}else{ }else{
//无关联的,直接给个选项就行 //无关联的,直接给个选项就行
for (NSInteger i=0; i<self.noCorreArry.count; i++) { for (NSInteger i=0; i<self.noCorreArry.count; i++) {
NSArray *eachAry=self.noCorreArry[i]; NSArray *eachAry=self.noCorreArry[i];
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment