Commit 6e4d3363 by lee

Merge branch 'master' of git.oschina.net:kollway-kollway/newcemarose

parents 4031d8f7 24c0de27
......@@ -183,6 +183,7 @@
C066650C1D75A2E500F02EF4 /* Mine.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C06665081D75A2E500F02EF4 /* Mine.storyboard */; };
C066650F1D7675FC00F02EF4 /* KWMAboutUsVC.m in Sources */ = {isa = PBXBuildFile; fileRef = C066650E1D7675FC00F02EF4 /* KWMAboutUsVC.m */; };
C06665121D767A0A00F02EF4 /* KWMContactUsVC.m in Sources */ = {isa = PBXBuildFile; fileRef = C06665111D767A0A00F02EF4 /* KWMContactUsVC.m */; };
C077966F1EEAA2BE00CD6859 /* KWMFilterUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = C077966E1EEAA2BE00CD6859 /* KWMFilterUtil.m */; };
C084F4531D6D8CA700A0625D /* KWMBlogCell.m in Sources */ = {isa = PBXBuildFile; fileRef = C084F4511D6D8CA700A0625D /* KWMBlogCell.m */; };
C084F4541D6D8CA700A0625D /* KWMBlogCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = C084F4521D6D8CA700A0625D /* KWMBlogCell.xib */; };
C084F4571D6D975400A0625D /* KWMSearchBar.m in Sources */ = {isa = PBXBuildFile; fileRef = C084F4561D6D975400A0625D /* KWMSearchBar.m */; };
......@@ -207,6 +208,18 @@
C0CC14161D79826F007B5986 /* KWMAddressCell.m in Sources */ = {isa = PBXBuildFile; fileRef = C0CC14141D79826F007B5986 /* KWMAddressCell.m */; };
C0CC14171D79826F007B5986 /* KWMAddressCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = C0CC14151D79826F007B5986 /* KWMAddressCell.xib */; };
C0CC141A1D79847A007B5986 /* KWMSelectAddressVC.m in Sources */ = {isa = PBXBuildFile; fileRef = C0CC14191D79847A007B5986 /* KWMSelectAddressVC.m */; };
C0CCB3B91EEA579900BC2FB8 /* KWMFilterView.m in Sources */ = {isa = PBXBuildFile; fileRef = C0CCB3B71EEA579900BC2FB8 /* KWMFilterView.m */; };
C0CCB3BA1EEA579900BC2FB8 /* KWMFilterView.xib in Resources */ = {isa = PBXBuildFile; fileRef = C0CCB3B81EEA579900BC2FB8 /* KWMFilterView.xib */; };
C0CCB3BD1EEA589200BC2FB8 /* KWMFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = C0CCB3BC1EEA589200BC2FB8 /* KWMFilter.m */; };
C0CCB3C11EEA59A200BC2FB8 /* KWMFilterViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = C0CCB3BF1EEA59A200BC2FB8 /* KWMFilterViewCell.m */; };
C0CCB3C21EEA59A200BC2FB8 /* KWMFilterViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = C0CCB3C01EEA59A200BC2FB8 /* KWMFilterViewCell.xib */; };
C0CCB3C51EEA5A1100BC2FB8 /* UIView+Prettify.m in Sources */ = {isa = PBXBuildFile; fileRef = C0CCB3C41EEA5A1100BC2FB8 /* UIView+Prettify.m */; };
C0CCB3CF1EEA765B00BC2FB8 /* KWMFilterTabItem.m in Sources */ = {isa = PBXBuildFile; fileRef = C0CCB3C71EEA765B00BC2FB8 /* KWMFilterTabItem.m */; };
C0CCB3D01EEA765B00BC2FB8 /* KWMFilterTabItem.xib in Resources */ = {isa = PBXBuildFile; fileRef = C0CCB3C81EEA765B00BC2FB8 /* KWMFilterTabItem.xib */; };
C0CCB3D11EEA765B00BC2FB8 /* KWMNormalFilterTab.m in Sources */ = {isa = PBXBuildFile; fileRef = C0CCB3CA1EEA765B00BC2FB8 /* KWMNormalFilterTab.m */; };
C0CCB3D21EEA765B00BC2FB8 /* KWMNormalFilterTab.xib in Resources */ = {isa = PBXBuildFile; fileRef = C0CCB3CB1EEA765B00BC2FB8 /* KWMNormalFilterTab.xib */; };
C0CCB3D31EEA765B00BC2FB8 /* KWMNormalFilterView.m in Sources */ = {isa = PBXBuildFile; fileRef = C0CCB3CD1EEA765B00BC2FB8 /* KWMNormalFilterView.m */; };
C0CCB3D41EEA765B00BC2FB8 /* KWMNormalFilterView.xib in Resources */ = {isa = PBXBuildFile; fileRef = C0CCB3CE1EEA765B00BC2FB8 /* KWMNormalFilterView.xib */; };
C0D7CA9E1EA7384E005AE3A3 /* KWMPageControl.m in Sources */ = {isa = PBXBuildFile; fileRef = C08827A51E28B4AF006A8B91 /* KWMPageControl.m */; };
C0D7CAA11EA843AD005AE3A3 /* KWMOrder.m in Sources */ = {isa = PBXBuildFile; fileRef = C0D7CAA01EA843AD005AE3A3 /* KWMOrder.m */; };
C0D7CAA41EA846AA005AE3A3 /* KWMOrdersResult.m in Sources */ = {isa = PBXBuildFile; fileRef = C0D7CAA31EA846AA005AE3A3 /* KWMOrdersResult.m */; };
......@@ -242,8 +255,6 @@
C0F586791E24F820001248E2 /* KWMDetailCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = C0F5864B1E24F820001248E2 /* KWMDetailCell.xib */; };
C0F5867A1E24F820001248E2 /* KWMDoubleTitleView.m in Sources */ = {isa = PBXBuildFile; fileRef = C0F5864D1E24F820001248E2 /* KWMDoubleTitleView.m */; };
C0F5867B1E24F820001248E2 /* KWMDoubleTitleView.xib in Resources */ = {isa = PBXBuildFile; fileRef = C0F5864E1E24F820001248E2 /* KWMDoubleTitleView.xib */; };
C0F5867C1E24F820001248E2 /* KWMFilterView.m in Sources */ = {isa = PBXBuildFile; fileRef = C0F586501E24F820001248E2 /* KWMFilterView.m */; };
C0F5867D1E24F820001248E2 /* KWMFilterView.xib in Resources */ = {isa = PBXBuildFile; fileRef = C0F586511E24F820001248E2 /* KWMFilterView.xib */; };
C0F5867E1E24F820001248E2 /* KWMNewGoodsCell.m in Sources */ = {isa = PBXBuildFile; fileRef = C0F586531E24F820001248E2 /* KWMNewGoodsCell.m */; };
C0F5867F1E24F820001248E2 /* KWMNewGoodsCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = C0F586541E24F820001248E2 /* KWMNewGoodsCell.xib */; };
C0F586801E24F820001248E2 /* KWMNewTypeView.m in Sources */ = {isa = PBXBuildFile; fileRef = C0F586561E24F820001248E2 /* KWMNewTypeView.m */; };
......@@ -607,6 +618,8 @@
C066650E1D7675FC00F02EF4 /* KWMAboutUsVC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KWMAboutUsVC.m; sourceTree = "<group>"; };
C06665101D767A0A00F02EF4 /* KWMContactUsVC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KWMContactUsVC.h; sourceTree = "<group>"; };
C06665111D767A0A00F02EF4 /* KWMContactUsVC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KWMContactUsVC.m; sourceTree = "<group>"; };
C077966D1EEAA2BE00CD6859 /* KWMFilterUtil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KWMFilterUtil.h; sourceTree = "<group>"; };
C077966E1EEAA2BE00CD6859 /* KWMFilterUtil.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KWMFilterUtil.m; sourceTree = "<group>"; };
C084F4501D6D8CA700A0625D /* KWMBlogCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KWMBlogCell.h; sourceTree = "<group>"; };
C084F4511D6D8CA700A0625D /* KWMBlogCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KWMBlogCell.m; sourceTree = "<group>"; };
C084F4521D6D8CA700A0625D /* KWMBlogCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = KWMBlogCell.xib; sourceTree = "<group>"; };
......@@ -648,6 +661,25 @@
C0CC14151D79826F007B5986 /* KWMAddressCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = KWMAddressCell.xib; sourceTree = "<group>"; };
C0CC14181D79847A007B5986 /* KWMSelectAddressVC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KWMSelectAddressVC.h; sourceTree = "<group>"; };
C0CC14191D79847A007B5986 /* KWMSelectAddressVC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KWMSelectAddressVC.m; sourceTree = "<group>"; };
C0CCB3B61EEA579900BC2FB8 /* KWMFilterView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KWMFilterView.h; sourceTree = "<group>"; };
C0CCB3B71EEA579900BC2FB8 /* KWMFilterView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KWMFilterView.m; sourceTree = "<group>"; };
C0CCB3B81EEA579900BC2FB8 /* KWMFilterView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = KWMFilterView.xib; sourceTree = "<group>"; };
C0CCB3BB1EEA589200BC2FB8 /* KWMFilter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KWMFilter.h; sourceTree = "<group>"; };
C0CCB3BC1EEA589200BC2FB8 /* KWMFilter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KWMFilter.m; sourceTree = "<group>"; };
C0CCB3BE1EEA59A200BC2FB8 /* KWMFilterViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KWMFilterViewCell.h; sourceTree = "<group>"; };
C0CCB3BF1EEA59A200BC2FB8 /* KWMFilterViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KWMFilterViewCell.m; sourceTree = "<group>"; };
C0CCB3C01EEA59A200BC2FB8 /* KWMFilterViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = KWMFilterViewCell.xib; sourceTree = "<group>"; };
C0CCB3C31EEA5A1100BC2FB8 /* UIView+Prettify.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIView+Prettify.h"; sourceTree = "<group>"; };
C0CCB3C41EEA5A1100BC2FB8 /* UIView+Prettify.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIView+Prettify.m"; sourceTree = "<group>"; };
C0CCB3C61EEA765B00BC2FB8 /* KWMFilterTabItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KWMFilterTabItem.h; sourceTree = "<group>"; };
C0CCB3C71EEA765B00BC2FB8 /* KWMFilterTabItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KWMFilterTabItem.m; sourceTree = "<group>"; };
C0CCB3C81EEA765B00BC2FB8 /* KWMFilterTabItem.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = KWMFilterTabItem.xib; sourceTree = "<group>"; };
C0CCB3C91EEA765B00BC2FB8 /* KWMNormalFilterTab.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KWMNormalFilterTab.h; sourceTree = "<group>"; };
C0CCB3CA1EEA765B00BC2FB8 /* KWMNormalFilterTab.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KWMNormalFilterTab.m; sourceTree = "<group>"; };
C0CCB3CB1EEA765B00BC2FB8 /* KWMNormalFilterTab.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = KWMNormalFilterTab.xib; sourceTree = "<group>"; };
C0CCB3CC1EEA765B00BC2FB8 /* KWMNormalFilterView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KWMNormalFilterView.h; sourceTree = "<group>"; };
C0CCB3CD1EEA765B00BC2FB8 /* KWMNormalFilterView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KWMNormalFilterView.m; sourceTree = "<group>"; };
C0CCB3CE1EEA765B00BC2FB8 /* KWMNormalFilterView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = KWMNormalFilterView.xib; sourceTree = "<group>"; };
C0D7CA9F1EA843AD005AE3A3 /* KWMOrder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KWMOrder.h; sourceTree = "<group>"; };
C0D7CAA01EA843AD005AE3A3 /* KWMOrder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KWMOrder.m; sourceTree = "<group>"; };
C0D7CAA21EA846AA005AE3A3 /* KWMOrdersResult.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KWMOrdersResult.h; sourceTree = "<group>"; };
......@@ -706,9 +738,6 @@
C0F5864C1E24F820001248E2 /* KWMDoubleTitleView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KWMDoubleTitleView.h; sourceTree = "<group>"; };
C0F5864D1E24F820001248E2 /* KWMDoubleTitleView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KWMDoubleTitleView.m; sourceTree = "<group>"; };
C0F5864E1E24F820001248E2 /* KWMDoubleTitleView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = KWMDoubleTitleView.xib; sourceTree = "<group>"; };
C0F5864F1E24F820001248E2 /* KWMFilterView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KWMFilterView.h; sourceTree = "<group>"; };
C0F586501E24F820001248E2 /* KWMFilterView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KWMFilterView.m; sourceTree = "<group>"; };
C0F586511E24F820001248E2 /* KWMFilterView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = KWMFilterView.xib; sourceTree = "<group>"; };
C0F586521E24F820001248E2 /* KWMNewGoodsCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KWMNewGoodsCell.h; sourceTree = "<group>"; };
C0F586531E24F820001248E2 /* KWMNewGoodsCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KWMNewGoodsCell.m; sourceTree = "<group>"; };
C0F586541E24F820001248E2 /* KWMNewGoodsCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = KWMNewGoodsCell.xib; sourceTree = "<group>"; };
......@@ -1082,6 +1111,8 @@
C0D7CAA01EA843AD005AE3A3 /* KWMOrder.m */,
9BE61CFC1ECD66BC0031D21E /* KWMShoppingCart.h */,
9BE61CFD1ECD66BC0031D21E /* KWMShoppingCart.m */,
C0CCB3BB1EEA589200BC2FB8 /* KWMFilter.h */,
C0CCB3BC1EEA589200BC2FB8 /* KWMFilter.m */,
);
path = Model;
sourceTree = "<group>";
......@@ -1113,6 +1144,8 @@
C034E6C41D6AECF9006EE129 /* Util */ = {
isa = PBXGroup;
children = (
C077966D1EEAA2BE00CD6859 /* KWMFilterUtil.h */,
C077966E1EEAA2BE00CD6859 /* KWMFilterUtil.m */,
C02C7D991E642DED008DC29C /* KWMWeChatUtil.h */,
C02C7D9A1E642DED008DC29C /* KWMWeChatUtil.m */,
C034E6D01D6AEF1B006EE129 /* KWMImageUtil.h */,
......@@ -1134,6 +1167,7 @@
C034E6C51D6AECF9006EE129 /* View */ = {
isa = PBXGroup;
children = (
C0CCB3B51EEA520C00BC2FB8 /* FilterView */,
C0DD53251EE55190002D1E0C /* Cell */,
C0DD53261EE55190002D1E0C /* Loading */,
C034E7C31D6B10A0006EE129 /* CorePhotoBroswer */,
......@@ -1161,6 +1195,8 @@
801230F41DD32B39008C7904 /* KWMInformationView.h */,
801230F51DD32B39008C7904 /* KWMInformationView.m */,
801230F71DD32B49008C7904 /* KWMInformationView.xib */,
C0CCB3C31EEA5A1100BC2FB8 /* UIView+Prettify.h */,
C0CCB3C41EEA5A1100BC2FB8 /* UIView+Prettify.m */,
);
path = View;
sourceTree = "<group>";
......@@ -1646,6 +1682,28 @@
path = Cell;
sourceTree = "<group>";
};
C0CCB3B51EEA520C00BC2FB8 /* FilterView */ = {
isa = PBXGroup;
children = (
C0CCB3BE1EEA59A200BC2FB8 /* KWMFilterViewCell.h */,
C0CCB3BF1EEA59A200BC2FB8 /* KWMFilterViewCell.m */,
C0CCB3C01EEA59A200BC2FB8 /* KWMFilterViewCell.xib */,
C0CCB3B61EEA579900BC2FB8 /* KWMFilterView.h */,
C0CCB3B71EEA579900BC2FB8 /* KWMFilterView.m */,
C0CCB3B81EEA579900BC2FB8 /* KWMFilterView.xib */,
C0CCB3C61EEA765B00BC2FB8 /* KWMFilterTabItem.h */,
C0CCB3C71EEA765B00BC2FB8 /* KWMFilterTabItem.m */,
C0CCB3C81EEA765B00BC2FB8 /* KWMFilterTabItem.xib */,
C0CCB3C91EEA765B00BC2FB8 /* KWMNormalFilterTab.h */,
C0CCB3CA1EEA765B00BC2FB8 /* KWMNormalFilterTab.m */,
C0CCB3CB1EEA765B00BC2FB8 /* KWMNormalFilterTab.xib */,
C0CCB3CC1EEA765B00BC2FB8 /* KWMNormalFilterView.h */,
C0CCB3CD1EEA765B00BC2FB8 /* KWMNormalFilterView.m */,
C0CCB3CE1EEA765B00BC2FB8 /* KWMNormalFilterView.xib */,
);
path = FilterView;
sourceTree = "<group>";
};
C0DD53251EE55190002D1E0C /* Cell */ = {
isa = PBXGroup;
children = (
......@@ -1719,9 +1777,6 @@
C0F5864C1E24F820001248E2 /* KWMDoubleTitleView.h */,
C0F5864D1E24F820001248E2 /* KWMDoubleTitleView.m */,
C0F5864E1E24F820001248E2 /* KWMDoubleTitleView.xib */,
C0F5864F1E24F820001248E2 /* KWMFilterView.h */,
C0F586501E24F820001248E2 /* KWMFilterView.m */,
C0F586511E24F820001248E2 /* KWMFilterView.xib */,
C0F586521E24F820001248E2 /* KWMNewGoodsCell.h */,
C0F586531E24F820001248E2 /* KWMNewGoodsCell.m */,
C0F586541E24F820001248E2 /* KWMNewGoodsCell.xib */,
......@@ -1865,7 +1920,7 @@
TargetAttributes = {
C034E6891D6AEB12006EE129 = {
CreatedOnToolsVersion = 7.3.1;
DevelopmentTeam = 72Z44QQ9ZD;
DevelopmentTeam = 6HFG5LS2Y2;
ProvisioningStyle = Manual;
};
C034E6A21D6AEB13006EE129 = {
......@@ -1911,7 +1966,6 @@
801230F31DD30704008C7904 /* KWMSearchBrandsCell.xib in Resources */,
C084F4591D6D976F00A0625D /* KWMSearchBar.xib in Resources */,
C0DD53381EE55190002D1E0C /* KWMLoadingView.xib in Resources */,
C0F5867D1E24F820001248E2 /* KWMFilterView.xib in Resources */,
C0F586811E24F820001248E2 /* KWMNewTypeView.xib in Resources */,
C0AF039F1DD5C8EE0060623F /* KWMNeedAddressView.xib in Resources */,
C084F4541D6D8CA700A0625D /* KWMBlogCell.xib in Resources */,
......@@ -1919,6 +1973,7 @@
C0CC14091D7823B0007B5986 /* KWMSizeCell.xib in Resources */,
8091DFAE1D6EA6DC0020519C /* KWMFirstView.xib in Resources */,
C02C7DB51E67B56D008DC29C /* KWMFilterHeaderView.xib in Resources */,
C0CCB3D21EEA765B00BC2FB8 /* KWMNormalFilterTab.xib in Resources */,
C034E8671D6B10A0006EE129 /* PhotoItemView.xib in Resources */,
C0DD533A1EE55190002D1E0C /* KWMSplashView.xib in Resources */,
8091DFA31D6E8CCA0020519C /* Guide.storyboard in Resources */,
......@@ -1936,11 +1991,13 @@
C034E6EB1D6AF0A0006EE129 /* Localizable.strings in Resources */,
C0F586AE1E279574001248E2 /* KWMBottomView.xib in Resources */,
C0392DBA1DCC38450051AC8E /* KWMShippingCell.xib in Resources */,
C0CCB3D01EEA765B00BC2FB8 /* KWMFilterTabItem.xib in Resources */,
80DD275B1DC2FE6800CDC5B5 /* Home.storyboard in Resources */,
80A611AF1D6DB0CD00709E09 /* ShopCart.storyboard in Resources */,
C02C7D811E640D82008DC29C /* README.txt in Resources */,
C0DD531F1EE54F5D002D1E0C /* KWMMineTitleView.xib in Resources */,
C034E8531D6B10A0006EE129 /* CoreSDWebImage.bundle in Resources */,
C0CCB3D41EEA765B00BC2FB8 /* KWMNormalFilterView.xib in Resources */,
C066650A1D75A2E500F02EF4 /* KWMOrderCell.xib in Resources */,
8091DFB81D6EC1C60020519C /* KWMThreeView.xib in Resources */,
8091DFB01D6EAD6F0020519C /* KWMSecondView.xib in Resources */,
......@@ -1956,6 +2013,8 @@
C0CC14051D7823B0007B5986 /* KWMDeleteView.xib in Resources */,
C034E6981D6AEB12006EE129 /* Main.storyboard in Resources */,
C0CC14071D7823B0007B5986 /* KWMShopCarCell.xib in Resources */,
C0CCB3BA1EEA579900BC2FB8 /* KWMFilterView.xib in Resources */,
C0CCB3C21EEA59A200BC2FB8 /* KWMFilterViewCell.xib in Resources */,
C0CC14171D79826F007B5986 /* KWMAddressCell.xib in Resources */,
804771821D6D32A70086B4DC /* Login.storyboard in Resources */,
C0DD53241EE55062002D1E0C /* KWMCarCountView.xib in Resources */,
......@@ -2052,6 +2111,7 @@
C0F586871E24F820001248E2 /* KWMNewTypeSelectedVC.m in Sources */,
80598D471D99193400BF0F97 /* KWMInformationVC.m in Sources */,
C034E7B91D6B0A8D006EE129 /* KWMHomeVC.m in Sources */,
C0CCB3BD1EEA589200BC2FB8 /* KWMFilter.m in Sources */,
C0F5868F1E24F821001248E2 /* SVerticalView.m in Sources */,
801F87BC1DD1A9B90038FA4C /* KWMNewProducts.m in Sources */,
C0CC14061D7823B0007B5986 /* KWMShopCarCell.m in Sources */,
......@@ -2076,8 +2136,10 @@
C0392DB91DCC38450051AC8E /* KWMShippingCell.m in Sources */,
C02C7DA31E66AA97008DC29C /* KWMFilterVC.m in Sources */,
C034E8681D6B10A0006EE129 /* PhotoBroswerVC.m in Sources */,
C0CCB3D31EEA765B00BC2FB8 /* KWMNormalFilterView.m in Sources */,
8091DFB31D6EADE60020519C /* KWMSecondView.m in Sources */,
C034E8501D6B10A0006EE129 /* UIView+Extend.m in Sources */,
C0CCB3CF1EEA765B00BC2FB8 /* KWMFilterTabItem.m in Sources */,
80ED0A4C1D93B99E00B28DF2 /* KWMShopCartData.m in Sources */,
C034E85C1D6B10A0006EE129 /* UIView+PBExtend.m in Sources */,
C0F5867E1E24F820001248E2 /* KWMNewGoodsCell.m in Sources */,
......@@ -2115,6 +2177,7 @@
C0F5869B1E25D05F001248E2 /* KWMProductDetailView.m in Sources */,
C06665091D75A2E500F02EF4 /* KWMOrderCell.m in Sources */,
C0DD53141EE54B96002D1E0C /* KWMSearchBrandView.m in Sources */,
C0CCB3C51EEA5A1100BC2FB8 /* UIView+Prettify.m in Sources */,
C034E8621D6B10A0006EE129 /* PBPGView.m in Sources */,
C02C7DB41E67B56D008DC29C /* KWMFilterHeaderView.m in Sources */,
80ED0A371D93840A00B28DF2 /* DB_shopCart.xcdatamodeld in Sources */,
......@@ -2128,6 +2191,7 @@
C0FC278E1D9B73B000C5CFFE /* KWMGiftCardCell.m in Sources */,
8077F79A1D73E39000A2E2E2 /* KWMBrandCaramelCell.m in Sources */,
9BE61D011ECD71610031D21E /* KWMCartResult.m in Sources */,
C0CCB3C11EEA59A200BC2FB8 /* KWMFilterViewCell.m in Sources */,
C084F4571D6D975400A0625D /* KWMSearchBar.m in Sources */,
C0DD534D1EE6AE06002D1E0C /* BaseCell.m in Sources */,
C0E8AE091D7D030B00C193DC /* KWMEditAddressVC.m in Sources */,
......@@ -2161,7 +2225,6 @@
80ED0A491D93B82F00B28DF2 /* KWMShopCartItem+CoreDataProperties.m in Sources */,
80537ADB1D86A7E100AB5122 /* KWMUserModel.m in Sources */,
C034E84E1D6B10A0006EE129 /* UIImage+Water.m in Sources */,
C0F5867C1E24F820001248E2 /* KWMFilterView.m in Sources */,
C034E86B1D6B10A0006EE129 /* EGORefreshTableHeaderView.m in Sources */,
C0DD53191EE54C5F002D1E0C /* KWMSearchFeedBackView.m in Sources */,
C03A05061E35DC5800BAA889 /* KWMNewGiftCardVC.m in Sources */,
......@@ -2172,6 +2235,7 @@
807AF4A81DC984950000A326 /* KWMSearchResult.m in Sources */,
C0DD533B1EE55190002D1E0C /* KWMSuperLoadingView.m in Sources */,
C034E85D1D6B10A0006EE129 /* PBConst.m in Sources */,
C0CCB3D11EEA765B00BC2FB8 /* KWMNormalFilterTab.m in Sources */,
C0CC140F1D7926DF007B5986 /* KWMBeforePayVC.m in Sources */,
C034E8441D6B10A0006EE129 /* NSObject+Extend.m in Sources */,
80A611B21D6DB0EC00709E09 /* KWMShopCartVC.m in Sources */,
......@@ -2182,8 +2246,10 @@
C034E6DA1D6AEF1B006EE129 /* KWMTextFieldUtil.m in Sources */,
C0F5868D1E24F821001248E2 /* SHorizontalView.m in Sources */,
C034E7041D6AF205006EE129 /* RTSpinKitView.m in Sources */,
C0CCB3B91EEA579900BC2FB8 /* KWMFilterView.m in Sources */,
C05910941E34A729002990B3 /* KWMNewGiftCardCell.m in Sources */,
C034E8411D6B10A0006EE129 /* CALayer+Transition.m in Sources */,
C077966F1EEAA2BE00CD6859 /* KWMFilterUtil.m in Sources */,
C034E8631D6B10A0006EE129 /* PBSaveBtn.m in Sources */,
807AF4A71DC984950000A326 /* KWMProducts.m in Sources */,
C0F5868A1E24F820001248E2 /* KWMSelectedGoodsVC.m in Sources */,
......
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "ic_arrow_down@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "ic_arrow_down@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
\ No newline at end of file
//
// KWMBrandsImage.h
// iCemarose
//
// Created by 陈荣科 on 2016/11/8.
// Copyright © 2016年 kollway. All rights reserved.
//
#import "KWMBaseModel.h"
@interface KWMBrandsImage : KWMBaseModel
@property (nonatomic) NSString *handle;
@property (nonatomic) NSDictionary *image;
@property (nonatomic) NSString *title;
- (NSString *)getImageScr;
@end
//
// KWMBrandsImage.m
// iCemarose
//
// Created by 陈荣科 on 2016/11/8.
// Copyright © 2016年 kollway. All rights reserved.
//
#import "KWMBrandsImage.h"
@implementation KWMBrandsImage
- (NSString *)getImageScr{
return [_image objectForKey:@"scr"];
}
@end
//
// KWMFilter.h
// iCemarose
//
// Created by HouWeiBin on 2017/6/7.
// Copyright © 2017年 kollway. All rights reserved.
//
// 筛选model
//
#import <JSONModel/JSONModel.h>
#import <Foundation/Foundation.h>
@interface KWMFilter : KWMBaseModel
//filter tag group name
@property (nonatomic) NSString *group;
//tags
@property(nonatomic) NSMutableArray<NSString *> *tags;
@end
//
// KWMFilter.m
// iCemarose
//
// Created by HouWeiBin on 2017/6/7.
// Copyright © 2017年 kollway. All rights reserved.
//
#import "KWMFilter.h"
@implementation KWMFilter
@end
......@@ -7,6 +7,7 @@
//
#import <JSONModel/JSONModel.h>
#import "KWMBaseModel.h"
@interface KWMOrder : KWMBaseModel
......
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="12120" systemVersion="16E195" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="12121" systemVersion="16F73" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
<device id="retina4_7" orientation="portrait">
<adaptation id="fullscreen"/>
</device>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12088"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12089"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<scenes>
......@@ -21,8 +21,8 @@
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="44" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="IcS-3H-XUB">
<rect key="frame" x="0.0" y="74" width="375" height="593"/>
<tableView contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="none" rowHeight="44" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="IcS-3H-XUB">
<rect key="frame" x="0.0" y="104" width="375" height="563"/>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
<view key="tableHeaderView" clipsSubviews="YES" contentMode="scaleToFill" id="m0g-lT-Bac">
<rect key="frame" x="0.0" y="0.0" width="375" height="210"/>
......@@ -38,7 +38,7 @@
<constraint firstAttribute="height" constant="210" id="o7z-ZG-ytp"/>
</constraints>
</view>
<textView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="09X-K0-Zki">
<textView hidden="YES" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" editable="NO" translatesAutoresizingMaskIntoConstraints="NO" id="09X-K0-Zki">
<rect key="frame" x="0.0" y="251" width="375" height="128"/>
<constraints>
<constraint firstAttribute="height" constant="128" id="ibt-xg-ahc"/>
......@@ -48,7 +48,7 @@
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<textInputTraits key="textInputTraits" autocapitalizationType="sentences"/>
</textView>
<button opaque="NO" alpha="0.5" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="lgS-Wb-cuc">
<button hidden="YES" opaque="NO" alpha="0.5" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="lgS-Wb-cuc">
<rect key="frame" x="0.0" y="190" width="375" height="20"/>
<color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
......@@ -83,10 +83,6 @@
<outlet property="delegate" destination="eiC-Xl-2es" id="dM4-Gw-Ouq"/>
</connections>
</tableView>
<view hidden="YES" alpha="0.29999999999999999" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="hkC-I1-C67">
<rect key="frame" x="0.0" y="20" width="375" height="647"/>
<color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</view>
<view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="evT-5t-rty">
<rect key="frame" x="0.0" y="20" width="375" height="647"/>
<subviews>
......@@ -108,7 +104,7 @@
</constraints>
</imageView>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<color key="backgroundColor" red="0.95686274509803915" green="0.96078431372549022" blue="0.96862745098039216" alpha="1" colorSpace="calibratedRGB"/>
<constraints>
<constraint firstItem="R23-SN-2Bb" firstAttribute="centerX" secondItem="evT-5t-rty" secondAttribute="centerX" id="A4k-v1-iTU"/>
<constraint firstItem="R23-SN-2Bb" firstAttribute="top" secondItem="hEs-Nl-jTX" secondAttribute="bottom" constant="18" id="Tv4-ZZ-2PM"/>
......@@ -116,83 +112,25 @@
<constraint firstItem="R23-SN-2Bb" firstAttribute="centerY" secondItem="evT-5t-rty" secondAttribute="centerY" id="w2g-0d-F8E"/>
</constraints>
</view>
<view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="7Li-5W-7f5" customClass="KWMFilterView">
<rect key="frame" x="0.0" y="65" width="375" height="602"/>
<view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Cy8-TS-7aW" customClass="KWMNormalFilterView">
<rect key="frame" x="0.0" y="94" width="375" height="573"/>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
</view>
<view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="hDa-nl-Tlr" userLabel="v筛选(新)">
<rect key="frame" x="0.0" y="64" width="375" height="0.0"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="bgT-J7-XAe" userLabel="left">
<rect key="frame" x="0.0" y="0.0" width="187.5" height="0.0"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="筛选" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="E2F-rc-MkG">
<rect key="frame" x="80" y="-10" width="28" height="20"/>
<fontDescription key="fontDescription" name="PingFangSC-Regular" family="PingFang SC" pointSize="14"/>
<color key="textColor" red="0.31764705882352939" green="0.31764705882352939" blue="0.31764705882352939" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<constraints>
<constraint firstItem="E2F-rc-MkG" firstAttribute="centerY" secondItem="bgT-J7-XAe" secondAttribute="centerY" id="V2N-bD-opb"/>
<constraint firstItem="E2F-rc-MkG" firstAttribute="centerX" secondItem="bgT-J7-XAe" secondAttribute="centerX" id="c2b-WH-FLs"/>
</constraints>
<connections>
<outletCollection property="gestureRecognizers" destination="9c4-MD-7Lg" appends="YES" id="INt-ba-DAG"/>
</connections>
</view>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="shz-Mj-x88" userLabel="right">
<rect key="frame" x="187.5" y="0.0" width="187.5" height="0.0"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="排序" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="4kk-AI-Ue8">
<rect key="frame" x="79.5" y="-10" width="28" height="20"/>
<fontDescription key="fontDescription" name="PingFangSC-Regular" family="PingFang SC" pointSize="14"/>
<color key="textColor" red="0.31764705882352939" green="0.31764705882352939" blue="0.31764705882352939" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<constraints>
<constraint firstItem="4kk-AI-Ue8" firstAttribute="centerY" secondItem="shz-Mj-x88" secondAttribute="centerY" id="MM9-kD-8GO"/>
<constraint firstItem="4kk-AI-Ue8" firstAttribute="centerX" secondItem="shz-Mj-x88" secondAttribute="centerX" id="jPh-JB-ELN"/>
</constraints>
<connections>
<outletCollection property="gestureRecognizers" destination="ig2-Qj-7Vg" appends="YES" id="YNr-kb-ck2"/>
</connections>
</view>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="hDa-nl-Tlr" customClass="KWMNormalFilterTab">
<rect key="frame" x="0.0" y="64" width="375" height="30"/>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
<constraints>
<constraint firstAttribute="bottom" secondItem="shz-Mj-x88" secondAttribute="bottom" id="BYB-Ci-Alg"/>
<constraint firstItem="shz-Mj-x88" firstAttribute="top" secondItem="hDa-nl-Tlr" secondAttribute="top" id="Boj-gZ-NbY"/>
<constraint firstItem="bgT-J7-XAe" firstAttribute="leading" secondItem="hDa-nl-Tlr" secondAttribute="leading" id="FSP-MV-SKt"/>
<constraint firstAttribute="height" id="HK4-OE-vEa"/>
<constraint firstItem="shz-Mj-x88" firstAttribute="leading" secondItem="bgT-J7-XAe" secondAttribute="trailing" id="N9h-61-PbB"/>
<constraint firstItem="shz-Mj-x88" firstAttribute="width" secondItem="bgT-J7-XAe" secondAttribute="width" id="Z7S-qy-Rbj"/>
<constraint firstItem="bgT-J7-XAe" firstAttribute="top" secondItem="hDa-nl-Tlr" secondAttribute="top" id="iAq-80-rQV"/>
<constraint firstAttribute="bottom" secondItem="bgT-J7-XAe" secondAttribute="bottom" id="lQE-Yt-tCr"/>
<constraint firstAttribute="trailing" secondItem="shz-Mj-x88" secondAttribute="trailing" id="oy5-jA-UW2"/>
<constraint firstAttribute="height" constant="30" id="HK4-OE-vEa"/>
</constraints>
</view>
<view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Cy8-TS-7aW">
<rect key="frame" x="0.0" y="64" width="375" height="603"/>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
</view>
</subviews>
<color key="backgroundColor" red="0.95686274509803915" green="0.96078431372549022" blue="0.96862745098039216" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstItem="hDa-nl-Tlr" firstAttribute="top" secondItem="zpX-41-Ngk" secondAttribute="top" constant="64" id="1ku-fw-1rl"/>
<constraint firstAttribute="trailing" secondItem="evT-5t-rty" secondAttribute="trailing" id="67h-A6-5jJ"/>
<constraint firstAttribute="trailing" secondItem="hkC-I1-C67" secondAttribute="trailing" id="71Z-y2-6LQ"/>
<constraint firstItem="3n2-hH-xH7" firstAttribute="top" secondItem="hkC-I1-C67" secondAttribute="bottom" id="8n4-Ym-DBt"/>
<constraint firstItem="IcS-3H-XUB" firstAttribute="leading" secondItem="zpX-41-Ngk" secondAttribute="leading" id="CIl-uD-o0w"/>
<constraint firstAttribute="trailing" secondItem="IcS-3H-XUB" secondAttribute="trailing" id="Cv2-YS-e4D"/>
<constraint firstItem="3n2-hH-xH7" firstAttribute="top" secondItem="7Li-5W-7f5" secondAttribute="bottom" id="Dgc-Ob-D1N"/>
<constraint firstItem="hkC-I1-C67" firstAttribute="top" secondItem="gML-uH-K3J" secondAttribute="bottom" id="EOU-LB-816"/>
<constraint firstAttribute="trailing" secondItem="7Li-5W-7f5" secondAttribute="trailing" id="Jgy-TO-X0t"/>
<constraint firstItem="hDa-nl-Tlr" firstAttribute="leading" secondItem="zpX-41-Ngk" secondAttribute="leading" id="NhL-d5-aXA"/>
<constraint firstItem="7Li-5W-7f5" firstAttribute="top" secondItem="zpX-41-Ngk" secondAttribute="top" constant="65" id="NqW-sc-tSL"/>
<constraint firstItem="evT-5t-rty" firstAttribute="leading" secondItem="zpX-41-Ngk" secondAttribute="leading" id="Og9-68-h35"/>
<constraint firstItem="3n2-hH-xH7" firstAttribute="top" secondItem="Cy8-TS-7aW" secondAttribute="bottom" id="PIf-9Z-uEf"/>
<constraint firstItem="IcS-3H-XUB" firstAttribute="top" secondItem="hDa-nl-Tlr" secondAttribute="bottom" constant="10" id="VMa-R5-OFW"/>
......@@ -203,37 +141,24 @@
<constraint firstAttribute="trailing" secondItem="Cy8-TS-7aW" secondAttribute="trailing" id="iCF-U2-txU"/>
<constraint firstItem="Cy8-TS-7aW" firstAttribute="top" secondItem="hDa-nl-Tlr" secondAttribute="bottom" id="kzM-OO-4XA"/>
<constraint firstItem="3n2-hH-xH7" firstAttribute="top" secondItem="IcS-3H-XUB" secondAttribute="bottom" id="s35-CK-Hrw"/>
<constraint firstItem="7Li-5W-7f5" firstAttribute="leading" secondItem="zpX-41-Ngk" secondAttribute="leading" id="tSH-fZ-Hx1"/>
<constraint firstItem="hkC-I1-C67" firstAttribute="leading" secondItem="zpX-41-Ngk" secondAttribute="leading" id="uWV-7g-3iq"/>
</constraints>
</view>
<freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
<size key="freeformSize" width="375" height="667"/>
<connections>
<outlet property="btnBottom" destination="lgS-Wb-cuc" id="yWf-RS-4uY"/>
<outlet property="filterView" destination="7Li-5W-7f5" id="vlZ-hW-czm"/>
<outlet property="filterTab" destination="hDa-nl-Tlr" id="bN8-Bj-AEj"/>
<outlet property="filterView" destination="Cy8-TS-7aW" id="bXn-6V-4bg"/>
<outlet property="ivBrand" destination="bSu-Ww-ztC" id="i4m-wL-R2a"/>
<outlet property="tbvBrandCaramel" destination="IcS-3H-XUB" id="Op2-g8-Z4j"/>
<outlet property="tvDescription" destination="09X-K0-Zki" id="rlf-aR-PPB"/>
<outlet property="tvDescriptionTop" destination="PQT-t1-A4h" id="cht-8x-qdf"/>
<outlet property="vBackgroudTop" destination="9ij-Of-WPP" id="FgA-b2-2oQ"/>
<outlet property="vBackground" destination="RSg-ot-hh6" id="npW-oZ-LuL"/>
<outlet property="vBlurred" destination="hkC-I1-C67" id="TWz-Ts-ve0"/>
<outlet property="vFilter" destination="Cy8-TS-7aW" id="mHF-Cf-CEw"/>
<outlet property="vNoneGoods" destination="evT-5t-rty" id="cte-zL-TVM"/>
</connections>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="ppo-c8-mZD" userLabel="First Responder" sceneMemberID="firstResponder"/>
<tapGestureRecognizer id="9c4-MD-7Lg" userLabel="tap筛选">
<connections>
<action selector="onClickFilter:" destination="eiC-Xl-2es" id="MaL-V8-aet"/>
</connections>
</tapGestureRecognizer>
<tapGestureRecognizer id="ig2-Qj-7Vg" userLabel="tap排序">
<connections>
<action selector="onClickSort:" destination="eiC-Xl-2es" id="PXm-1n-9wt"/>
</connections>
</tapGestureRecognizer>
</objects>
<point key="canvasLocation" x="520.79999999999995" y="-353.07346326836586"/>
</scene>
......
......@@ -10,10 +10,10 @@
#import "KWMBarandSelectView.h"
#import "Buy/Buy.h"
#import "KWMNewGoodsModel.h"
#import "KWMFilterView.h"
#import "KWMFilterVC.h"
#import "KWMNormalFilterTab.h"
#import "KWMNormalFilterView.h"
@interface KWMBrandCaramelVC : KWMBasePageVC<KWMBarandSelectViewDelegate,KWMFilterDelegate,KWMFilterVCDelegate>
@interface KWMBrandCaramelVC : KWMBasePageVC<KWMBarandSelectViewDelegate,KWMNormalFilterTabDelegate,KWMFilterDelegate>
@property (weak, nonatomic) IBOutlet UITableView *tbvBrandCaramel;
@property (weak, nonatomic) IBOutlet UITextView *tvDescription;
......@@ -22,20 +22,16 @@
@property (weak, nonatomic) IBOutlet UIImageView *ivBrand;
//@property (weak, nonatomic) IBOutlet UIView *vScreen;//筛选view
@property (weak, nonatomic) IBOutlet UIView *vBlurred;//模糊背景
@property (weak, nonatomic) IBOutlet UIView *vNoneGoods;//没有商品
@property (weak, nonatomic) IBOutlet UIView *vFilter;//筛选空间容器
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *vBackgroudTop;
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *tvDescriptionTop;
@property (weak, nonatomic) IBOutlet KWMFilterView *filterView;
@property (weak, nonatomic) IBOutlet KWMNormalFilterTab *filterTab;
@property (weak, nonatomic) IBOutlet KWMNormalFilterView *filterView;
@property (nonatomic) BOOL isLoading;
@property (nonatomic) BUYCollectionSort collectionSort;
@property (nonatomic) BUYCollection *collection;
@property (nonatomic) NSString *brand;
@property (nonatomic) NSString *handle;//搜索品牌字段
......@@ -48,8 +44,5 @@
- (IBAction)onClickBotomBtn:(id)sender;
- (IBAction)onClickFilter:(id)sender;
- (IBAction)onClickSort:(id)sender;
@end
......@@ -15,9 +15,10 @@
#import "UIImageView+WebCache.h"
#import "KWMImageUtil.h"
#import "KWMStringUtil.h"
#import "KWMFilterUtil.h"
#import "UIColor+SAMAdditions.h"
#import "MJRefresh.h"
#import "KWMFilterVC.h"
#import "KWMImageBlurUtil.h"
#import "KWMShoppingCart.h"
#import <RXCollections/RXCollection.h>
......@@ -57,38 +58,12 @@
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
self.collectionSort = BUYCollectionSortCreatedDescending;
self.filterView.delegate = self;
self.automaticallyAdjustsScrollViewInsets = NO;
self.tvDescription.editable = NO;
mark = -1;
self.vNoneGoods.backgroundColor = [UIColor colorWithRed:244.0/255 green:245.0/255 blue:247.0/255 alpha:1];
self.tbvBrandCaramel.separatorStyle = UITableViewCellSeparatorStyleNone;
_tvDescription.hidden = YES;
_btnBottom.hidden = YES;
if (_backColor) {
_ivBrand.backgroundColor = _backColor;
}else{
[self setBackColor];
}
[self initView];
[self getCollection:_handle];
if(self.goodModel){
[self initCacheData];
}
[self initFilterVC];
}
-(void)initFilterVC{
if(!filterVC){
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"New" bundle:nil];
filterVC = [storyboard instantiateViewControllerWithIdentifier:[KWMFilterVC kwmTag]];
[self addChildViewController:filterVC];
[self.vFilter addSubview:filterVC.view];
filterVC.delegate = self;
}
}
-(void)initCacheData{
......@@ -121,7 +96,6 @@
}
-(void)loadData{
// [self showLoading];
if(self.collection!=nil && self.collection.identifier!=nil){
[self getProcduct:self.collection.identifier];
}
......@@ -129,7 +103,6 @@
-(void)reLoadData{
self.currentPage = 0;
// [self showLoading];
if(self.collection!=nil && self.collection.identifier!=nil){
[self getProcduct:self.collection.identifier];
}}
......@@ -140,20 +113,6 @@
_barandSelectView.count = [[KWMShoppingCart sharedInstance] count].integerValue;
_barandSelectView.lbBrand.text = [_brand uppercaseString];
rightButton =[UIButton buttonWithType:UIButtonTypeRoundedRect];
rightButton.frame = CGRectMake(UI_SCREEN_WIDTH-100, 33, 40, 20);
[rightButton addTarget:self action:@selector(clickRightButton) forControlEvents:UIControlEventTouchUpInside];
[rightButton setTitle:@"排序 +" forState:UIControlStateNormal];
[rightButton setTitleColor:[UIColor sam_colorWithHex:@"4E4E4E"] forState:UIControlStateNormal];
rightButton.titleLabel.font=[UIFont systemFontOfSize:11];
[rightButton.layer setMasksToBounds:YES];
rightButton.layer.cornerRadius = 1; //圆角(圆形)
rightButton.layer.borderColor = [UIColor sam_colorWithHex:@"4E4E4E"].CGColor; //要设置的颜色
rightButton.layer.borderWidth = 1; //要设置的描边宽
[self.barandSelectView addSubview:rightButton];
[self.view addSubview:_barandSelectView];
_barandSelectView.delegate = self;
}
......@@ -164,7 +123,10 @@ static NSString *idStr = @"KWMBrandCaramelCell";
isUp = NO;
backgroundTop = 210;
tvTop = 255;
mark = -1;
self.automaticallyAdjustsScrollViewInsets = NO;
self.hasNextPage = NO;
self.tbvBrandCaramel.delegate = self;
self.tbvBrandCaramel.showsVerticalScrollIndicator = NO;
[self.tbvBrandCaramel registerNib:[UINib nibWithNibName:idStr bundle:nil] forCellReuseIdentifier:idStr];
......@@ -173,6 +135,15 @@ static NSString *idStr = @"KWMBrandCaramelCell";
if(self.goodModel!=nil && self.goodModel.comments!=nil && ![self.goodModel.comments isEqualToString:@"品牌"]){
self.tbvBrandCaramel.tableHeaderView = [[UIView alloc] initWithFrame:CGRectZero];
}
if (_backColor) {
_ivBrand.backgroundColor = _backColor;
}else{
[self setBackColor];
}
self.filterView.delegate = self;
self.filterTab.delegate = self;
}
......@@ -195,26 +166,6 @@ static NSString *idStr = @"KWMBrandCaramelCell";
isUp = !isUp;
}
-(void)onClickSort:(id)sender{
self.vFilter.hidden = NO;
[self initFilterVC];
if(filterVC){
[filterVC setBgImage:[KWMImageBlurUtil getBlurImage:self.tbvBrandCaramel]];
BOOL isSort = YES;
[filterVC setType:isSort];
}
}
-(void)onClickFilter:(id)sender{
self.vFilter.hidden = NO;
[self initFilterVC];
if(filterVC){
[filterVC setBgImage:[KWMImageBlurUtil getBlurImage:self.tbvBrandCaramel]];
BOOL isSort = YES;
[filterVC setType:!isSort];
}
}
//动画 筛选显示:0:不显示 1:显示 2:没有
- (void)changeFrameBy:(NSInteger)value WithImageName:(NSString *)imageStr AndShowView:(NSInteger)showNum{
......@@ -233,40 +184,7 @@ static NSString *idStr = @"KWMBrandCaramelCell";
}];
}
-(void)clickRightButton{
if(self.isLoading){
return;
}
self.filterView.hidden = !self.filterView.hidden;
self.filterView.collectionSort = self.collectionSort;
if(self.filterView.hidden){
rightButton.titleLabel.text = @"排序 +";
[rightButton setTitle:@"排序 +" forState:UIControlStateNormal];
}else{
rightButton.titleLabel.text = @"排序 -";
[rightButton setTitle:@"排序 -" forState:UIControlStateNormal];
}
}
-(void)kwm_onCancelFilter{
self.vFilter.hidden = YES;
}
-(void)kwm_onClickSort:(BUYCollectionSort)sort{
self.hasNextPage = YES;
self.collectionSort = sort;
[self reLoadData];
}
-(void)kwm_onHide{
if(self.filterView.hidden){
rightButton.titleLabel.text = @"排序 +";
[rightButton setTitle:@"排序 +" forState:UIControlStateNormal];
}else{
[rightButton setTitle:@"排序 -" forState:UIControlStateNormal];
rightButton.titleLabel.text = @"排序 -";
}
}
#pragma mark -- KWMBarandSelectViewDelegate
//点击返回按钮回调
......@@ -281,6 +199,28 @@ static NSString *idStr = @"KWMBrandCaramelCell";
[self.navigationController pushViewController:shopCartVC animated:YES];
}
#pragma mark -- KWMFilterDelegate
-(void)kwm_onFilterFinish:(KWMFilterView *)filterView{
self.filterView.hidden = YES;
[self.filterTab close];
[self reLoadData];
[self.tbvBrandCaramel.mj_header beginRefreshing];
[self.tbvBrandCaramel setContentOffset:CGPointMake(0,0) animated:YES];
}
-(void)kwm_onClickFilterBlank:(KWMFilterView *)filterView{
[self.filterTab close];
}
#pragma mark -- KWMNormalFilterTabDelegate
-(void)kwm_onClickTab:(KWMFilterMode)filterMode isExpandView:(BOOL)isExpand{
self.filterView.filterMode = filterMode;
if(isExpand){
[self.filterView show];
}
self.filterView.hidden = !isExpand;
}
#pragma mark -- KWMBrandCaramelCellDelegate
//点击左边商品回调
......@@ -397,40 +337,38 @@ static NSString *idStr = @"KWMBrandCaramelCell";
- (void)getProcduct:(NSNumber *)collectionId{
BUYCollectionSort collectionSort = self.collectionSort;
if(collectionId == nil){
return;
}
__weak KWMBrandCaramelVC *weakSelf = self;
NSInteger tagetPage = self.currentPage.integerValue + 1;
NSArray *tags = nil;
//初始化排序及筛选tag
BUYCollectionSort collectionSort = self.filterView.selectedSort;
NSMutableArray *tags = [KWMFilterUtil getTagsByFilterArray:self.filterView.selectedTags];
if(self.isSale){
NSString *tag;
tag = @"sale";
tags = [NSArray arrayWithObjects:tag, nil];
[tags addObject:@"sale"];
}
NSInteger tagetPage = self.currentPage.integerValue + 1;
[self.client getProductsPage:tagetPage inCollection:collectionId withTags:tags sortOrder:collectionSort completion:^(NSArray *products,NSUInteger page, BOOL reachedEnd, NSError *error){
products = [products rx_filterWithBlock:^BOOL(BUYProduct *each) {
return each.availableValue;
}];
if (error != nil) {
if (error) {
[self showError:error];
NSLog(@"Error fetching products: %@", error);
}else if (products.count == 0 && weakSelf.dataList.count == 0){
_vNoneGoods.hidden = NO;
}else if (products.count == 0 && tagetPage == 1){
weakSelf.vNoneGoods.hidden = NO;
[weakSelf.dataList removeAllObjects];
[self.tbvBrandCaramel reloadData];
}else if (error == nil && products) {
if(tagetPage == 1){
if(tagetPage == 1 && (tags.count == 0 || (tags.count == 1 && weakSelf.isSale)) ){
[weakSelf.userDao saveCollectionCache:products collectionId:collectionId tags:tags];
}
weakSelf.hasNextPage = !reachedEnd;
[weakSelf appendDataList:products setPage:page];
_vNoneGoods.hidden = YES;
weakSelf.vNoneGoods.hidden = YES;
[self.tbvBrandCaramel reloadData];
}
[weakSelf hideLoading];
......
......@@ -291,40 +291,71 @@
- (void)showError:(NSError *)error{
if ([error.domain isEqualToString:NSURLErrorDomain]) {
[self showToast:@"网络已断开,请重新连接"];
// [self showToast:@"请求数据失败"];
return;
}
// NSDictionary *userInfo = [error userInfo];
// if (userInfo != nil) {
// NSNumber *errorCodeKey = [userInfo objectForKey:@"_kCFStreamErrorCodeKey"];
// if (errorCodeKey.intValue == 8) {
// [self showToast:@"网络已断开,请重新连接"];
// return;
// }
// }
NSArray<BUYError *> *errors = [BUYError errorsFromCheckoutJSON:error.userInfo];
if([self checkBuyErrors:errors]){
if (!error.userInfo){
return;
}
errors = [BUYError errorsFromSignUpJSON:error.userInfo];
if([self checkBuyErrors:errors]){
if ([self isCheckOutError:error]){
return;
}
NSString *toast = [self getErrorMessage:error];
if(![KWMStringUtil isEmpty:toast]){
[self showToast:toast];
if ([self isSignUpError:error]){
return;
}
if ([self isNormalError:error]){
return;
}
toast = [self getErrorMessage2:error];
//如果并不是shopify error,则正常吐司。
[self showToast:[error localizedDescription]];
}
-(BOOL)isCheckOutError:(NSError *)error{
//虽然errorsFromCheckoutJSON里面有判断了,但为了保险起见,还是加上判断
NSDictionary *errorsDictionary = error.userInfo[@"errors"];
if(!errorsDictionary || ![errorsDictionary isKindOfClass:[NSDictionary class]]){
return NO;
}
NSDictionary *customerDictionary = errorsDictionary[@"checkout"];
if(!customerDictionary || ![customerDictionary isKindOfClass:[NSDictionary class]]){
return NO;
}
NSArray<BUYError *> *errors = [BUYError errorsFromCheckoutJSON:error.userInfo];
// 现在下单时不会报quantity错误了。所以这段代码注释
// if(errors && errors.count > 0){
// NSString *quantityRemainingMessage = [errors.firstObject quantityRemainingMessage];
// }
if([self checkBuyErrors:errors]){
return YES;
}
return NO;
}
-(BOOL)isSignUpError:(NSError *)error{
NSDictionary *errorsDictionary = error.userInfo[@"errors"];
if(!errorsDictionary || ![errorsDictionary isKindOfClass:[NSDictionary class]]){
return NO;
}
NSDictionary *customerDictionary = errorsDictionary[@"customer"];
if(!customerDictionary || ![customerDictionary isKindOfClass:[NSDictionary class]]){
return NO;
}
NSArray<BUYError *> *errors = [BUYError errorsFromSignUpJSON:error.userInfo];
if([self checkBuyErrors:errors]){
return YES;
}
return NO;
}
- (BOOL)isNormalError:(NSError *)error{
NSString *toast = [self getErrorMessage:error];
if(![KWMStringUtil isEmpty:toast]){
if(toast!=nil && [toast isEqualToString:@"Unidentified customer"]){
if([toast isEqualToString:@"Unidentified customer"]){
toast = @"登录已失效,请重新登录";
}
[self showToast:toast];
return;
return YES;
}
[self showToast:[error localizedDescription]];
return NO;
}
//判断buyerror是否有效,有效则吐司错误
......@@ -350,18 +381,26 @@
return NO;
}
//获取key为message的错误信息
//获取key为message/error的错误信息
- (NSString *)getErrorMessage:(NSError *)error{
return [self getErrorMessageForKey:@"message = \"" error:error];
}
//获取key为error的错误信息
- (NSString *)getErrorMessage2:(NSError *)error{
return [self getErrorMessageForKey:@"error = \"" error:error];
NSString *errorString;
errorString = [self getErrorMessageForKey:@"message = \"" error:error];
if(![KWMStringUtil isEmpty:errorString]){
return errorString;
}
errorString = [self getErrorMessageForKey:@"error = \"" error:error];
if(![KWMStringUtil isEmpty:errorString]){
return errorString;
}
errorString = [self getErrorMessageForKey:@"errors = \"" error:error];
if(![KWMStringUtil isEmpty:errorString]){
return errorString;
}
return @"";
}
-(NSString *)getErrorMessageForKey:(NSString *)key error:(NSError *)error{
NSString *errorString = [self dictionaryToJson:error.userInfo];
NSString *errorString = [self dictionaryToString:error.userInfo];
NSRange startRange = [errorString rangeOfString:key];
if (startRange.location != NSNotFound) {
NSString *errorString2 = [errorString substringFromIndex:startRange.location + startRange.length];
......@@ -378,13 +417,13 @@
}
//字典转换为字符串
- (NSString*)dictionaryToJson:(NSDictionary *)dic{
- (NSString*)dictionaryToString:(NSDictionary *)dic{
NSString *a = [NSString stringWithFormat:@"%@",dic];
return a;
}
- (BOOL)hasError:(id)result{
- (BOOL)hasError:(id)result{
NSInteger code = -1;
NSString *message;
if ([result isKindOfClass:[KWMRequestResult class]]) {
......
//
// KWMFilterView.h
// iCemarose
//
// Created by HouWeiBin on 2016/12/9.
// Copyright © 2016年 kollway. All rights reserved.
//
#import <UIKit/UIKit.h>
#import "Buy/Buy.h"
@protocol KWMFilterDelegate <NSObject>
- (void)kwm_onClickSort:(BUYCollectionSort)sort;
- (void)kwm_onHide;
@end
@interface KWMFilterView : UIView
@property (weak, nonatomic) IBOutlet UIView *vContent;
@property (weak, nonatomic) IBOutlet UIButton *btnNewToOld;
@property (weak, nonatomic) IBOutlet UIButton *btnDearToCheap;
@property (weak, nonatomic) IBOutlet UIButton *btnCheapToDear;
@property (weak, nonatomic) id<KWMFilterDelegate>delegate;
- (IBAction)onClikcNewToOld:(id)sender;
- (IBAction)onClickDearToCheap:(id)sender;
-(IBAction)onClickCheapToDear:(id)sender;
-(IBAction)onClickBg:(id)sender;
-(IBAction)onClickComplete:(id)sender;
@property (nonatomic) BUYCollectionSort collectionSort;
@end
//
// KWMFilterView.m
// iCemarose
//
// Created by HouWeiBin on 2016/12/9.
// Copyright © 2016年 kollway. All rights reserved.
//
#import "KWMFilterView.h"
#import "UIColor+SAMAdditions.h"
@implementation KWMFilterView
- (id)init{
if (self=[super init]){
[self addView];
}
return self;
}
- (id)initWithCoder:(NSCoder *)aDecoder {
self = [super initWithCoder:aDecoder];
if (self) {
[self addView];
}
return self;
}
-(instancetype)initWithFrame:(CGRect)frame{
if (self =[super initWithFrame:frame]) {
[self addView];
}
return self;
}
-(void)awakeFromNib{
[super awakeFromNib];
}
-(void) addView{
[[NSBundle mainBundle] loadNibNamed:NSStringFromClass([self class])
owner:self
options:nil];
self.vContent.frame = CGRectMake(0, 0, self.frame.size.width, self.frame.size.height);
[self addSubview:self.vContent];
[self initView];
}
-(void)setCollectionSort:(BUYCollectionSort)collectionSort{
if(collectionSort == BUYCollectionSortPriceDescending){
[self onClickDearToCheap:nil];
}else if(collectionSort == BUYCollectionSortPriceAscending){
[self onClickCheapToDear:nil];
}else{
[self onClikcNewToOld:nil];
}
}
-(void)initView{
[self initButton:self.btnNewToOld];
[self initButton:self.btnCheapToDear];
[self initButton:self.btnDearToCheap];
[self setButtonSelect:self.btnNewToOld isSelect:YES];
}
-(void)initButton:(UIButton *)button{
[button.layer setMasksToBounds:YES];
button.layer.cornerRadius = 1; //圆角(圆形)
button.layer.borderColor = [UIColor blackColor].CGColor; //要设置的颜色
button.layer.borderWidth = 1; //要设置的描边宽
}
-(void)setButtonSelect:(UIButton *)button isSelect:(BOOL)isSelect{
if(isSelect){
//设置背景颜色
button.backgroundColor = [UIColor sam_colorWithHex:@"393939"];
button.titleLabel.textColor = [UIColor sam_colorWithHex:@"ffffff"];
[button setTitleColor:[UIColor sam_colorWithHex:@"ffffff"] forState:UIControlStateNormal];
}else{
button.backgroundColor = [UIColor sam_colorWithHex:@"ffffff"];
[button setTitleColor:[UIColor sam_colorWithHex:@"4c5966"] forState:UIControlStateNormal];
}
}
-(void)onClikcNewToOld:(id)sender{
[self setButtonSelect:self.btnNewToOld isSelect:YES];
[self setButtonSelect:self.btnDearToCheap isSelect:NO];
[self setButtonSelect:self.btnCheapToDear isSelect:NO];
_collectionSort = BUYCollectionSortCreatedDescending;
}
-(void)onClickDearToCheap:(id)sender{
[self setButtonSelect:self.btnNewToOld isSelect:NO];
[self setButtonSelect:self.btnDearToCheap isSelect:YES];
[self setButtonSelect:self.btnCheapToDear isSelect:NO];
_collectionSort = BUYCollectionSortPriceDescending;
}
-(void)onClickCheapToDear:(id)sender{
[self setButtonSelect:self.btnNewToOld isSelect:NO];
[self setButtonSelect:self.btnDearToCheap isSelect:NO];
[self setButtonSelect:self.btnCheapToDear isSelect:YES];
_collectionSort = BUYCollectionSortPriceAscending;
}
-(void)onClickBg:(id)sender{
self.hidden = YES;
if(self.delegate!=nil){
[self.delegate kwm_onHide];
}
}
-(void)onClickComplete:(id)sender{
self.hidden = YES;
if(self.delegate!=nil){
[self.delegate kwm_onClickSort:_collectionSort];
[self.delegate kwm_onHide];
}
}
@end
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="11542" systemVersion="16A323" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
<device id="retina4_7" orientation="portrait">
<adaptation id="fullscreen"/>
</device>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="11524"/>
<capability name="Aspect ratio constraints" minToolsVersion="5.1"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<objects>
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="KWMFilterView">
<connections>
<outlet property="btnCheapToDear" destination="eOi-uc-TfU" id="jQl-hk-HyC"/>
<outlet property="btnDearToCheap" destination="yYc-hx-ogT" id="MwR-JV-czr"/>
<outlet property="btnNewToOld" destination="3uq-sv-8x0" id="3oF-ne-5qM"/>
<outlet property="vContent" destination="iN0-l3-epB" id="C7r-lm-tvu"/>
</connections>
</placeholder>
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
<view contentMode="scaleToFill" id="iN0-l3-epB">
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="dC1-cs-Gvq" userLabel="bg">
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.40000000000000002" colorSpace="calibratedRGB"/>
<connections>
<action selector="onClickBg:" destination="-1" eventType="touchUpInside" id="bcL-09-Pgy"/>
</connections>
</button>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Mcn-wz-yiS" userLabel="content">
<rect key="frame" x="0.0" y="0.0" width="375" height="167"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="hfL-49-KeK" userLabel="line">
<rect key="frame" x="0.0" y="0.0" width="375" height="1"/>
<color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
<constraints>
<constraint firstAttribute="height" constant="1" id="qs9-cz-lay"/>
</constraints>
</view>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="3uq-sv-8x0">
<rect key="frame" x="35" y="25" width="93" height="37"/>
<constraints>
<constraint firstAttribute="width" secondItem="3uq-sv-8x0" secondAttribute="height" multiplier="90:36" id="DQF-P3-FPq"/>
</constraints>
<state key="normal" title="新-旧款">
<color key="titleColor" red="0.30588235294117649" green="0.30588235294117649" blue="0.30588235294117649" alpha="1" colorSpace="calibratedRGB"/>
</state>
<connections>
<action selector="onClikcNewToOld:" destination="-1" eventType="touchUpInside" id="Gwa-ds-gT6"/>
</connections>
</button>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="yYc-hx-ogT">
<rect key="frame" x="141" y="25" width="93" height="37"/>
<constraints>
<constraint firstAttribute="width" secondItem="yYc-hx-ogT" secondAttribute="height" multiplier="91:36" id="CC0-Bf-ZAI"/>
</constraints>
<state key="normal" title="高-低价">
<color key="titleColor" red="0.30588235294117649" green="0.30588235294117649" blue="0.30588235294117649" alpha="1" colorSpace="calibratedRGB"/>
</state>
<connections>
<action selector="onClickDearToCheap:" destination="-1" eventType="touchUpInside" id="wq2-ti-3Ft"/>
</connections>
</button>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="eOi-uc-TfU">
<rect key="frame" x="247" y="25" width="93" height="37"/>
<constraints>
<constraint firstAttribute="width" secondItem="eOi-uc-TfU" secondAttribute="height" multiplier="91:36" id="RcS-2a-KZA"/>
</constraints>
<state key="normal" title="低-高价">
<color key="titleColor" red="0.30588235294117649" green="0.30588235294117649" blue="0.30588235294117649" alpha="1" colorSpace="calibratedRGB"/>
</state>
<connections>
<action selector="onClickCheapToDear:" destination="-1" eventType="touchUpInside" id="nKH-wI-Clg"/>
</connections>
</button>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="wp2-h3-MDu">
<rect key="frame" x="40" y="82" width="295" height="50"/>
<color key="backgroundColor" red="0.14117647059999999" green="0.14117647059999999" blue="0.14117647059999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstAttribute="height" constant="50" id="i4C-Bz-g8w"/>
</constraints>
<state key="normal" title="完成">
<color key="titleColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</state>
<connections>
<action selector="onClickComplete:" destination="-1" eventType="touchUpInside" id="Gzv-UN-y3x"/>
</connections>
</button>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<constraints>
<constraint firstAttribute="trailing" secondItem="wp2-h3-MDu" secondAttribute="trailing" constant="40" id="Adb-ir-4QC"/>
<constraint firstItem="hfL-49-KeK" firstAttribute="top" secondItem="Mcn-wz-yiS" secondAttribute="top" id="FvN-ZR-ZWt"/>
<constraint firstItem="yYc-hx-ogT" firstAttribute="width" secondItem="3uq-sv-8x0" secondAttribute="width" id="OGR-nu-DkG"/>
<constraint firstAttribute="trailing" secondItem="hfL-49-KeK" secondAttribute="trailing" id="RJL-GC-hgv"/>
<constraint firstItem="3uq-sv-8x0" firstAttribute="top" secondItem="Mcn-wz-yiS" secondAttribute="top" constant="25" id="Rdb-hW-dwA"/>
<constraint firstItem="eOi-uc-TfU" firstAttribute="leading" secondItem="yYc-hx-ogT" secondAttribute="trailing" constant="13" id="UGn-Z9-Qrq"/>
<constraint firstItem="eOi-uc-TfU" firstAttribute="width" secondItem="3uq-sv-8x0" secondAttribute="width" id="V6d-ff-DvU"/>
<constraint firstItem="yYc-hx-ogT" firstAttribute="leading" secondItem="3uq-sv-8x0" secondAttribute="trailing" constant="13" id="XMQ-Bi-lGl"/>
<constraint firstItem="eOi-uc-TfU" firstAttribute="top" secondItem="Mcn-wz-yiS" secondAttribute="top" constant="25" id="YwO-Pb-jze"/>
<constraint firstItem="hfL-49-KeK" firstAttribute="leading" secondItem="Mcn-wz-yiS" secondAttribute="leading" id="aTF-jw-AGm"/>
<constraint firstItem="wp2-h3-MDu" firstAttribute="top" secondItem="eOi-uc-TfU" secondAttribute="bottom" constant="20" id="cmM-Wl-DeA"/>
<constraint firstItem="yYc-hx-ogT" firstAttribute="top" secondItem="Mcn-wz-yiS" secondAttribute="top" constant="25" id="dtZ-MZ-Fzb"/>
<constraint firstItem="wp2-h3-MDu" firstAttribute="leading" secondItem="Mcn-wz-yiS" secondAttribute="leading" constant="40" id="gfv-Ca-fVR"/>
<constraint firstAttribute="trailing" secondItem="eOi-uc-TfU" secondAttribute="trailing" constant="35" id="hLG-oK-pHp"/>
<constraint firstAttribute="bottom" secondItem="wp2-h3-MDu" secondAttribute="bottom" constant="35" id="okt-09-b6d"/>
<constraint firstItem="3uq-sv-8x0" firstAttribute="leading" secondItem="Mcn-wz-yiS" secondAttribute="leading" constant="35" id="usz-dJ-ttm"/>
</constraints>
</view>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
<constraints>
<constraint firstItem="dC1-cs-Gvq" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="7DX-dD-mgz"/>
<constraint firstAttribute="trailing" secondItem="Mcn-wz-yiS" secondAttribute="trailing" id="BgH-OI-0Zh"/>
<constraint firstItem="dC1-cs-Gvq" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" id="EBW-Wf-bPg"/>
<constraint firstItem="Mcn-wz-yiS" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" id="Nvz-6G-hdo"/>
<constraint firstItem="Mcn-wz-yiS" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="Prs-A7-vRL"/>
<constraint firstAttribute="trailing" secondItem="dC1-cs-Gvq" secondAttribute="trailing" id="lKs-RH-iU5"/>
<constraint firstAttribute="bottom" secondItem="dC1-cs-Gvq" secondAttribute="bottom" id="pRe-E0-Lbd"/>
</constraints>
</view>
</objects>
</document>
......@@ -9,12 +9,13 @@
#import "KWMBasePageVC.h"
#import "KWMProductType.h"
#import "KWMDoubleTitleView.h"
#import "KWMFilterView.h"
#import "KWMBrandCaramelCell.h"
#import "UIColor+SAMAdditions.h"
#import "KWMNormalFilterTab.h"
#import "KWMNormalFilterView.h"
//选中的商品列表
@interface KWMSelectedGoodsVC : KWMBasePageVC<KWMBrandCaramelCellDelegate,KWMFilterDelegate>
@interface KWMSelectedGoodsVC : KWMBasePageVC<KWMBrandCaramelCellDelegate,KWMNormalFilterTabDelegate,KWMFilterDelegate>
@property (weak, nonatomic) IBOutlet UITableView *tbvSelectedGoods;
......@@ -24,14 +25,10 @@
@property (weak, nonatomic) IBOutlet UIView *vHeard;
@property (weak, nonatomic) IBOutlet KWMDoubleTitleView *vDoubleTitle;
@property (weak, nonatomic) IBOutlet UIView *vNoData;
@property (weak, nonatomic) IBOutlet KWMFilterView *filterView;
@property (weak, nonatomic) IBOutlet UIImageView *testImageView;
//双重标题view的高度
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *heightDoubleTitle;
@property (weak, nonatomic) IBOutlet KWMNormalFilterTab *filterTab;
@property (weak, nonatomic) IBOutlet KWMNormalFilterView *filterView;
@property (nonatomic) BOOL isLoading;
......
......@@ -10,6 +10,8 @@
#import "KWMProductDetailVC.h"
#import "KWMBeforePayVC.h"
#import "KWMMineTitleView.h"
#import "MJRefresh.h"
#import "KWMFilterUtil.h"
#import "KWMStringUtil.h"
#import "KWMImageBlurUtil.h"
......@@ -47,8 +49,9 @@ static NSString *idStr = @"KWMBrandCaramelCell";
}
- (void)initView{
self.hasNextPage = NO;
self.collectionSort = BUYCollectionSortCreatedDescending;
self.filterView.delegate = self;
if(self.productType != nil){
//初始化双行标题栏
NSString *mTitle;
......@@ -69,22 +72,14 @@ static NSString *idStr = @"KWMBrandCaramelCell";
openPosition = -1;
self.automaticallyAdjustsScrollViewInsets = NO;
rightButton =[UIButton buttonWithType:UIButtonTypeRoundedRect];
rightButton.frame = CGRectMake(0, 5, 40, 20);
[rightButton addTarget:self action:@selector(clickRightButton) forControlEvents:UIControlEventTouchUpInside];
[rightButton setTitle:@"排序 +" forState:UIControlStateNormal];
UIBarButtonItem *button =[[UIBarButtonItem alloc] initWithCustomView:rightButton];
self.navigationItem.rightBarButtonItem = button;
rightButton.titleLabel.font=[UIFont systemFontOfSize:11];
[rightButton.layer setMasksToBounds:YES];
rightButton.layer.cornerRadius = 1; //圆角(圆形)
rightButton.layer.borderColor = [UIColor sam_colorWithHex:@"4E4E4E"].CGColor; //要设置的颜色
rightButton.layer.borderWidth = 1; //要设置的描边宽
isSelect = NO;
vStopTap = [[UIView alloc] initWithFrame:CGRectMake(0, 20, UI_SCREEN_WIDTH, 44)];
vStopTap.backgroundColor = [UIColor clearColor];
_vHeard.backgroundColor = [UIColor sam_colorWithHex:@"F4F5F7"];
self.filterView.delegate = self;
self.filterTab.delegate = self;
[self initCacheData];
}
......@@ -119,59 +114,17 @@ static NSString *idStr = @"KWMBrandCaramelCell";
}
}
-(void)clickRightButton{
// UIToolbar *toolBar = [[UIToolbar alloc]initWithFrame:self.testImageView.frame];
// toolBar.barStyle = UIBarStyleDefault;
// [self.view addSubview:toolBar];
// UIBlurEffect *beffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark];
// UIVisualEffectView *view = [[UIVisualEffectView alloc]initWithEffect:beffect];
// view.frame = self.testImageView.frame;
// [self.view addSubview:view];
if(self.isLoading){
return;
}
self.filterView.hidden = !self.filterView.hidden;
self.filterView.collectionSort = self.collectionSort;
if(self.filterView.hidden){
rightButton.titleLabel.text = @"排序 +";
[rightButton setTitle:@"排序 +" forState:UIControlStateNormal];
}else{
[rightButton setTitle:@"排序 -" forState:UIControlStateNormal];
rightButton.titleLabel.text = @"排序 -";
}
}
-(void)kwm_onClickSort:(BUYCollectionSort)sort{
self.hasNextPage = YES;
self.collectionSort = sort;
[self reLoadData];
}
-(void)kwm_onHide{
if(self.filterView.hidden){
rightButton.titleLabel.text = @"排序 +";
[rightButton setTitle:@"排序 +" forState:UIControlStateNormal];
}else{
rightButton.titleLabel.text = @"排序 -";
[rightButton setTitle:@"排序 -" forState:UIControlStateNormal];
}
}
-(UITableView *)targetTableView{
return self.tbvSelectedGoods;
}
-(void)loadData{
[self requesProductList:self.collectionSort];
[self requestProductList];
}
-(void)reLoadData{
self.currentPage = 0;
[self requesProductList:self.collectionSort];
[self requestProductList];
}
......@@ -188,6 +141,26 @@ static NSString *idStr = @"KWMBrandCaramelCell";
}];
}
#pragma mark -- KWMFilterDelegate
-(void)kwm_onFilterFinish:(KWMFilterView *)filterView{
self.filterView.hidden = YES;
[self.filterTab close];
[self reLoadData];
[self.tbvSelectedGoods.mj_header beginRefreshing];
[self.tbvSelectedGoods setContentOffset:CGPointMake(0,0) animated:YES];
}
-(void)kwm_onClickFilterBlank:(KWMFilterView *)filterView{
[self.filterTab close];
}
#pragma mark -- KWMNormalFilterTabDelegate
-(void)kwm_onClickTab:(KWMFilterMode)filterMode isExpandView:(BOOL)isExpand{
self.filterView.hidden = !isExpand;
self.filterView.filterMode = filterMode;
}
#pragma mark -- KWMBrandCaramelCellDelegate
//点击左边商品回调
......@@ -265,14 +238,8 @@ static NSString *idStr = @"KWMBrandCaramelCell";
return (UI_SCREEN_WIDTH/2 - 20 + 64);
}
- (void)requesProductList:(BUYCollectionSort)collectionSort{
if(!self.hasNextPage){
[self showToast:NSLocalizedString(@"WarnLastPage", @"WarnLastPage")];
[self hideLoading];
return;
}
- (void)requestProductList{
NSNumber *collectionId;
NSArray *tags;
if([TestModel isEqualToString:@"YES"]){
//测试
self.collection = [[BUYCollection alloc] init];
......@@ -281,29 +248,31 @@ static NSString *idStr = @"KWMBrandCaramelCell";
if(self.collection!=nil){
collectionId = self.collection.identifier;
}
//初始化排序及筛选tag
BUYCollectionSort collectionSort = self.filterView.selectedSort;
NSMutableArray *tags = [KWMFilterUtil getTagsByFilterArray:self.filterView.selectedTags];
if(self.productType!=nil){
if(![KWMStringUtil isEmpty:self.productType.collectionId]){
NSInteger num = [self.productType.collectionId integerValue];
collectionId = @(num);
}
NSString *tag;
if(self.tagType == 0){
tag = @"baby";
[tags addObject:@"baby"];
}else if(self.tagType == 1){
tag = @"girls";
[tags addObject:@"girls"];
}else if(self.tagType == 2){
tag = @"boys";
[tags addObject:@"boys"];
}else if(self.tagType == 3){
tag = @"shoes";
[tags addObject:@"shoes"];
}
tags = [NSArray arrayWithObjects:tag, nil];
}
if(collectionId == nil){
return;
}
[self showLoading];
self.isLoading = YES;
__weak KWMSelectedGoodsVC *weakSelf = self;
NSInteger tagetPage = self.currentPage.integerValue + 1;
......@@ -313,11 +282,20 @@ static NSString *idStr = @"KWMBrandCaramelCell";
[weakSelf hideLoading];
if(tagetPage == 1){
if(tags.count == 1){
[weakSelf.userDao saveCollectionCache:products collectionId:collectionId tags:tags];
}
if(!products || products.count == 0){
self.vNoData.hidden = NO;
[weakSelf.dataList removeAllObjects];
[weakSelf.tbvSelectedGoods reloadData];
return;
}
}
weakSelf.isLoading = NO;
if (error == nil && products) {
self.vNoData.hidden = YES;
weakSelf.hasNextPage = !reachedEnd;
[weakSelf appendDataList:products setPage:page];
}
......
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="12118" systemVersion="16A323" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="12120" systemVersion="16E195" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
<device id="retina4_7" orientation="portrait">
<adaptation id="fullscreen"/>
</device>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12086"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12088"/>
<capability name="Constraints to layout margins" minToolsVersion="6.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
......@@ -137,57 +137,84 @@
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" showsVerticalScrollIndicator="NO" dataMode="prototypes" style="plain" separatorStyle="none" allowsSelection="NO" rowHeight="44" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="fcD-Y9-l8X">
<rect key="frame" x="0.0" y="20" width="375" height="647"/>
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<view key="tableHeaderView" contentMode="scaleToFill" id="ZQ3-np-q9I" userLabel="vLine">
<rect key="frame" x="0.0" y="0.0" width="375" height="5"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<color key="backgroundColor" red="0.82461414700000002" green="0.82461414700000002" blue="0.82461414700000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstAttribute="height" constant="5" id="h0I-AY-wFy"/>
</constraints>
</view>
<tableView contentMode="scaleToFill" alwaysBounceVertical="YES" showsVerticalScrollIndicator="NO" dataMode="prototypes" style="plain" separatorStyle="none" allowsSelection="NO" rowHeight="44" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="fcD-Y9-l8X">
<rect key="frame" x="0.0" y="60" width="375" height="607"/>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
<connections>
<outlet property="dataSource" destination="pw7-pT-2H3" id="sC2-7I-R6R"/>
<outlet property="delegate" destination="pw7-pT-2H3" id="cC8-uM-bQU"/>
</connections>
</tableView>
<view hidden="YES" alpha="0.29999999999999999" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="UZg-qo-bkR">
<rect key="frame" x="0.0" y="20" width="375" height="647"/>
<color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="lom-2Q-mUs">
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="暂无商品" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="XMM-dc-y7m">
<rect key="frame" x="155" y="323" width="66" height="21"/>
<constraints>
<constraint firstAttribute="height" constant="21" id="6mx-bk-vjd"/>
<constraint firstAttribute="width" constant="66" id="kNa-HG-AQL"/>
</constraints>
<fontDescription key="fontDescription" name="PingFangSC-Light" family="PingFang SC" pointSize="15"/>
<color key="textColor" red="0.20436698719999999" green="0.20436698719999999" blue="0.20436698719999999" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="ic_brand_not quite available" translatesAutoresizingMaskIntoConstraints="NO" id="pCp-qx-Ddg">
<rect key="frame" x="169" y="262" width="38" height="43"/>
<constraints>
<constraint firstAttribute="height" constant="43" id="N0w-Ag-QqD"/>
<constraint firstAttribute="width" constant="37.530000000000001" id="odN-jL-V5A"/>
</constraints>
</imageView>
</subviews>
<color key="backgroundColor" red="0.95686274510000002" green="0.96078431369999995" blue="0.96862745100000003" alpha="1" colorSpace="calibratedRGB"/>
<constraints>
<constraint firstItem="XMM-dc-y7m" firstAttribute="top" secondItem="pCp-qx-Ddg" secondAttribute="bottom" constant="18" id="95e-Q5-geT"/>
<constraint firstItem="XMM-dc-y7m" firstAttribute="centerY" secondItem="lom-2Q-mUs" secondAttribute="centerY" id="EVq-dk-dhV"/>
<constraint firstItem="pCp-qx-Ddg" firstAttribute="centerX" secondItem="XMM-dc-y7m" secondAttribute="centerX" id="MPq-6m-nnO"/>
<constraint firstItem="XMM-dc-y7m" firstAttribute="centerX" secondItem="lom-2Q-mUs" secondAttribute="centerX" id="vHV-J1-LZm"/>
</constraints>
</view>
<view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="PWv-M7-7vS" customClass="KWMFilterView">
<rect key="frame" x="0.0" y="20" width="375" height="647"/>
<color key="backgroundColor" red="0.99607843137254903" green="0.99607843137254903" blue="0.99607843137254903" alpha="0.0" colorSpace="custom" customColorSpace="sRGB"/>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="xb7-hV-2Zd" customClass="KWMNormalFilterTab">
<rect key="frame" x="0.0" y="20" width="375" height="30"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<constraints>
<constraint firstAttribute="height" constant="30" id="W8Z-0A-bJw"/>
</constraints>
</view>
<view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="7qB-Q5-gG1" customClass="KWMNormalFilterView">
<rect key="frame" x="0.0" y="50" width="375" height="617"/>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
</view>
</subviews>
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<color key="backgroundColor" red="0.95686274509803915" green="0.96078431372549022" blue="0.96862745098039216" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstItem="fcD-Y9-l8X" firstAttribute="leading" secondItem="X6T-Nd-zWM" secondAttribute="leading" id="4Hh-SK-YRP"/>
<constraint firstAttribute="bottom" secondItem="7qB-Q5-gG1" secondAttribute="bottom" id="52O-es-KBh"/>
<constraint firstItem="7qB-Q5-gG1" firstAttribute="leading" secondItem="X6T-Nd-zWM" secondAttribute="leading" id="5sg-sz-gBV"/>
<constraint firstAttribute="trailing" secondItem="fcD-Y9-l8X" secondAttribute="trailing" id="AHs-2L-9Oy"/>
<constraint firstItem="PWv-M7-7vS" firstAttribute="leading" secondItem="X6T-Nd-zWM" secondAttribute="leading" id="Alc-zB-QAz"/>
<constraint firstAttribute="trailing" secondItem="UZg-qo-bkR" secondAttribute="trailing" id="BA3-KF-7nx"/>
<constraint firstItem="fcD-Y9-l8X" firstAttribute="top" secondItem="BBC-0e-AMD" secondAttribute="bottom" id="EVY-OG-ebc"/>
<constraint firstItem="UZg-qo-bkR" firstAttribute="leading" secondItem="X6T-Nd-zWM" secondAttribute="leading" id="dTo-B0-vi1"/>
<constraint firstItem="lom-2Q-mUs" firstAttribute="top" secondItem="X6T-Nd-zWM" secondAttribute="top" id="Imt-9W-VgJ"/>
<constraint firstItem="lom-2Q-mUs" firstAttribute="leading" secondItem="X6T-Nd-zWM" secondAttribute="leading" id="LsI-78-515"/>
<constraint firstItem="fcD-Y9-l8X" firstAttribute="top" secondItem="xb7-hV-2Zd" secondAttribute="bottom" constant="10" id="QVC-Aj-qoP"/>
<constraint firstAttribute="trailing" secondItem="lom-2Q-mUs" secondAttribute="trailing" id="WKi-FN-cf1"/>
<constraint firstAttribute="trailing" secondItem="7qB-Q5-gG1" secondAttribute="trailing" id="Y3q-BV-TGt"/>
<constraint firstItem="xz3-5e-tlv" firstAttribute="top" secondItem="lom-2Q-mUs" secondAttribute="bottom" id="bWn-ll-1dm"/>
<constraint firstItem="7qB-Q5-gG1" firstAttribute="top" secondItem="xb7-hV-2Zd" secondAttribute="bottom" id="dWR-EP-dfj"/>
<constraint firstItem="xz3-5e-tlv" firstAttribute="top" secondItem="fcD-Y9-l8X" secondAttribute="bottom" id="eZr-L7-7fH"/>
<constraint firstItem="PWv-M7-7vS" firstAttribute="top" secondItem="BBC-0e-AMD" secondAttribute="bottom" id="hyH-ED-JXw"/>
<constraint firstItem="xz3-5e-tlv" firstAttribute="top" secondItem="PWv-M7-7vS" secondAttribute="bottom" id="kLS-v4-xqF"/>
<constraint firstAttribute="trailing" secondItem="PWv-M7-7vS" secondAttribute="trailing" id="l2J-WA-8do"/>
<constraint firstItem="UZg-qo-bkR" firstAttribute="top" secondItem="BBC-0e-AMD" secondAttribute="bottom" id="oeK-7i-mk1"/>
<constraint firstItem="xz3-5e-tlv" firstAttribute="top" secondItem="UZg-qo-bkR" secondAttribute="bottom" id="tnV-35-3hO"/>
<constraint firstItem="xb7-hV-2Zd" firstAttribute="top" secondItem="BBC-0e-AMD" secondAttribute="bottom" id="fRt-Zr-fSP"/>
<constraint firstAttribute="trailing" secondItem="xb7-hV-2Zd" secondAttribute="trailing" id="gwj-MW-Qsn"/>
<constraint firstItem="xb7-hV-2Zd" firstAttribute="leading" secondItem="X6T-Nd-zWM" secondAttribute="leading" id="ire-8T-wjq"/>
</constraints>
</view>
<connections>
<outlet property="filterView" destination="PWv-M7-7vS" id="piZ-Y6-d6q"/>
<outlet property="filterTab" destination="xb7-hV-2Zd" id="j70-Te-eqs"/>
<outlet property="filterView" destination="7qB-Q5-gG1" id="h6l-q0-4M6"/>
<outlet property="tbvSelectedGoods" destination="fcD-Y9-l8X" id="Dem-kS-25O"/>
<outlet property="vBackground" destination="UZg-qo-bkR" id="JQg-We-lk1"/>
<outlet property="vHeard" destination="ZQ3-np-q9I" id="Xrs-R6-EGM"/>
<outlet property="vNoData" destination="lom-2Q-mUs" id="xLj-pR-VrK"/>
</connections>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="rjD-hg-tmV" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="1326" y="-299"/>
<point key="canvasLocation" x="1325.5999999999999" y="-299.10044977511245"/>
</scene>
<!--搜索反馈-->
<scene sceneID="lLS-0p-8iT">
......
......@@ -45,6 +45,17 @@
-(void)initTextField{
//http://www.cocoachina.com/bbs/read.php?tid-250044-page-8.html #78
//tf为无边框模式时,输入中文会导致文字下沉的问题。
self.tfName.borderStyle = UITextBorderStyleNone;
self.tfPhone.borderStyle = UITextBorderStyleNone;
self.tfCountry.borderStyle = UITextBorderStyleNone;
self.tfProvince.borderStyle = UITextBorderStyleNone;
self.tfCity.borderStyle = UITextBorderStyleNone;
self.tfAddress.borderStyle = UITextBorderStyleNone;
self.tfAddressDetail.borderStyle = UITextBorderStyleNone;
self.tfZip.borderStyle = UITextBorderStyleNone;
self.tfName.delegate = self;
self.tfPhone.delegate = self;
self.tfCountry.delegate = self;
......
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="12120" systemVersion="16E195" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="12121" systemVersion="16F73" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
<device id="retina4_7" orientation="portrait">
<adaptation id="fullscreen"/>
</device>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12088"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12089"/>
<capability name="Constraints with non-1.0 multipliers" minToolsVersion="5.1"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
......@@ -1007,7 +1007,7 @@
<color key="textColor" red="0.3294117647" green="0.3294117647" blue="0.3294117647" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="HDf-hH-avB" customClass="KWMTextFieldUtil">
<textField opaque="NO" clipsSubviews="YES" contentMode="center" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="line" textAlignment="justified" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="HDf-hH-avB" customClass="KWMTextFieldUtil">
<rect key="frame" x="83" y="0.0" width="282" height="45"/>
<constraints>
<constraint firstAttribute="height" constant="45" id="fdK-jr-TuV"/>
......@@ -1048,7 +1048,7 @@
<color key="textColor" red="0.32941176470588235" green="0.32941176470588235" blue="0.32941176470588235" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="bRG-pI-5pS" customClass="KWMTextFieldUtil">
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="line" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="bRG-pI-5pS" customClass="KWMTextFieldUtil">
<rect key="frame" x="83" y="3" width="282" height="41"/>
<fontDescription key="fontDescription" type="system" pointSize="12"/>
<textInputTraits key="textInputTraits"/>
......@@ -1084,7 +1084,7 @@
<color key="textColor" red="0.3294117647" green="0.3294117647" blue="0.3294117647" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="kd4-0K-k7c" customClass="KWMTextFieldUtil">
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="line" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="kd4-0K-k7c" customClass="KWMTextFieldUtil">
<rect key="frame" x="83" y="3" width="282" height="41"/>
<fontDescription key="fontDescription" type="system" pointSize="12"/>
<textInputTraits key="textInputTraits"/>
......@@ -1133,7 +1133,7 @@
<constraint firstAttribute="height" constant="1" id="Xhg-8c-TTH"/>
</constraints>
</view>
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="E4Y-O9-BjA" customClass="KWMTextFieldUtil">
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="line" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="E4Y-O9-BjA" customClass="KWMTextFieldUtil">
<rect key="frame" x="83" y="3" width="282" height="41"/>
<fontDescription key="fontDescription" type="system" pointSize="12"/>
<textInputTraits key="textInputTraits"/>
......@@ -1170,7 +1170,7 @@
<constraint firstAttribute="height" constant="1" id="w26-gp-mS1"/>
</constraints>
</view>
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="补充详细地址,如几号楼几单元" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="Ad4-zz-DYh" customClass="KWMTextFieldUtil">
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="line" placeholder="补充详细地址,如几号楼几单元" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="Ad4-zz-DYh" customClass="KWMTextFieldUtil">
<rect key="frame" x="83" y="3" width="282" height="41"/>
<fontDescription key="fontDescription" type="system" pointSize="12"/>
<textInputTraits key="textInputTraits"/>
......@@ -1207,7 +1207,7 @@
<constraint firstAttribute="height" constant="1" id="Km1-3W-vyS"/>
</constraints>
</view>
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="Wg1-Ef-7g2" customClass="KWMTextFieldUtil">
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="line" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="Wg1-Ef-7g2" customClass="KWMTextFieldUtil">
<rect key="frame" x="83" y="3" width="282" height="41"/>
<fontDescription key="fontDescription" type="system" pointSize="12"/>
<textInputTraits key="textInputTraits"/>
......@@ -1237,7 +1237,7 @@
<color key="textColor" red="0.3294117647" green="0.3294117647" blue="0.3294117647" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="DDB-bK-v5E" customClass="KWMTextFieldUtil">
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="line" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="DDB-bK-v5E" customClass="KWMTextFieldUtil">
<rect key="frame" x="83" y="3" width="282" height="41"/>
<fontDescription key="fontDescription" type="system" pointSize="12"/>
<textInputTraits key="textInputTraits"/>
......@@ -1279,7 +1279,7 @@
<color key="textColor" red="0.3294117647" green="0.3294117647" blue="0.3294117647" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="zxl-Z1-xai">
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="line" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="zxl-Z1-xai">
<rect key="frame" x="83" y="3" width="282" height="41"/>
<fontDescription key="fontDescription" type="system" pointSize="12"/>
<textInputTraits key="textInputTraits" keyboardType="phonePad"/>
......
//
// KWMFilterUtil.h
// iCemarose
//
// Created by HouWeiBin on 2017/6/8.
// Copyright © 2017年 kollway. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "KWMFilter.h"
@interface KWMFilterUtil : NSObject
+(NSString *) transformTag:(KWMFilter *) filter tag:(NSString *)tag;
+(NSMutableArray<NSString *>*) getTagsByFilterArray:(NSArray<KWMFilter *>*)filterArray;
@end
//
// KWMFilterUtil.m
// iCemarose
//
// Created by HouWeiBin on 2017/6/8.
// Copyright © 2017年 kollway. All rights reserved.
//
#import "KWMFilterUtil.h"
#import "KWMFilter.h"
#import "KWMStringUtil.h"
@implementation KWMFilterUtil
+(NSMutableArray<NSString *> *)getTagsByFilterArray:(NSArray<KWMFilter *> *)filterArray{
NSMutableArray<NSString *> *tags = [NSMutableArray array];
for(KWMFilter *filter in filterArray){
if(filter.tags){
for(NSString *tag in filter.tags){
[tags addObject:[self transformTag:filter tag:tag]];
}
}
}
return tags;
}
+(NSString *)transformTag:(KWMFilter *)filter tag:(NSString *)tag{
NSString *mTag = [tag copy];
//"Spring/Summer 2017" => Spring-Summer-2017
if([filter.group isEqualToString:@"SEASON"]){
mTag = [mTag stringByReplacingOccurrencesOfString:@"/" withString:@"-"];
return [tag stringByReplacingOccurrencesOfString:@" " withString:@"-"];
}
//1 month=> size-01m
else if([filter.group isEqualToString:@"SIZE"]){
//不合规则的区别待遇
if([tag isEqualToString:@"0 month"]){
return @"size-0m";
}else if([tag isEqualToString:@"3 month"]){
return @"size-3m";
}else if([tag isEqualToString:@"3 month"]){
return @"size-9m";
}
NSString *numberString = [self getNumberString:tag];
numberString = numberString.length == 1 ? [NSString stringWithFormat:@"0%@",numberString]:numberString;
if([tag rangeOfString:@"year"].location == NSNotFound){
return [NSString stringWithFormat:@"size-%@m",numberString];
}else{
return [NSString stringWithFormat:@"size-%@a",numberString];
}
}
//12 => shoe-size-1
else if([filter.group isEqualToString:@"Shoe Size"]){
return [NSString stringWithFormat:@"shoe-size-%@",tag];
}
//Trousers & Shorts => trousers-shorts
else if([filter.group isEqualToString:@"PRODUCT TYPE"]){
return [KWMStringUtil deleteOtherCharExceptLetterWithLine:tag];
}
return mTag;
}
+(NSString *)getNumberString:(NSString *)string{
NSCharacterSet* nonDigits =[[NSCharacterSet decimalDigitCharacterSet] invertedSet];
return [string stringByTrimmingCharactersInSet:nonDigits];
}
@end
......@@ -38,6 +38,7 @@
+(NSString *) dateformatToHours:(long long) time;
+(CGSize)boundingRectWithSize:(CGSize)size text:(NSString *)text testSize:(CGFloat) testSize;
+(CGSize)getLabelWidth:(NSString *)text labelFont:(UIFont *)aLabelFont textHeight:(CGFloat) textHeight;
+(CGSize)getLabelHeight:(NSString *)text labelFont:(UIFont *)aLabelFont textWidth:(CGFloat) textWidth;
+(NSString *)dateFormatTimeString:(long long)time;
+(NSString *)deleteBlankForString:(NSString *)text;
+(NSNumber *)stringToNumber:(NSString *)numberString;
......
......@@ -389,6 +389,20 @@ static NSDateFormatter *monthDayFormatter;
return rect.size;
}
//计算文本内容的高度
+(CGSize)getLabelHeight:(NSString *)text labelFont:(UIFont *)aLabelFont textWidth:(CGFloat) textWidth{
CGSize constraint = CGSizeMake(textWidth, MAXFLOAT);
CGRect rect = [text boundingRectWithSize:constraint
options:(NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading)
attributes:@{
NSFontAttributeName : aLabelFont
}
context:nil];
return rect.size;
}
//删除出字母以外的字符补充为@"-"
static NSString *kEnglishNum = @"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
+ (NSString *)deleteOtherCharExceptLetterWithLine:(NSString *)str{
......
//
// KWMFilterTab.h
// iCemarose
//
// Created by HouWeiBin on 2017/6/8.
// Copyright © 2017年 kollway. All rights reserved.
//
#import <UIKit/UIKit.h>
#import "KWMFilterView.h"
@class KWMFilterTabItem;
@protocol FilterTabItemDelegate <NSObject>
- (void)kwm_onClickTabItem:(KWMFilterTabItem *)item isExpandView:(BOOL) isExpand;
@end
@interface KWMFilterTabItem : UIView
@property(nonatomic,weak) id<FilterTabItemDelegate> delegate;
@property(nonatomic) KWMFilterMode filterMode;
@property(nonatomic) BOOL isExpand;
@end
//
// KWMFilterTab.m
// iCemarose
//
// Created by HouWeiBin on 2017/6/8.
// Copyright © 2017年 kollway. All rights reserved.
//
#import "KWMFilterTabItem.h"
#import "UIColor+SAMAdditions.h"
@interface KWMFilterTabItem()
@property(nonatomic,weak) IBOutlet UIView *containerView;
@property(nonatomic,weak) IBOutlet UILabel *lbTitle;
@property(nonatomic,weak) IBOutlet UIImageView *ivArrow;
-(IBAction)onClickTab:(id)sender;
@end
@implementation KWMFilterTabItem
-(void)awakeFromNib{
[super awakeFromNib];
[self initView];
}
-(void)initView{
[[NSBundle mainBundle] loadNibNamed:NSStringFromClass([self class])
owner:self
options:nil];
self.containerView.frame = CGRectMake(0, 0, self.frame.size.width, self.frame.size.height);
[self addSubview:self.containerView];
self.filterMode = ModeFilter;
}
-(void)setFilterMode:(KWMFilterMode)filterMode{
_filterMode = filterMode;
if(filterMode == ModeFilter){
self.lbTitle.text = @"筛选";
}else if(filterMode == ModeSort){
self.lbTitle.text = @"排序";
}else if(filterMode == ModeBrand){
self.lbTitle.text = @"品牌";
}
}
-(void)onClickTab:(id)sender{
if(self.delegate != nil){
[self.delegate kwm_onClickTabItem:self isExpandView:!self.isExpand];
}
}
-(void)setIsExpand:(BOOL)isExpand{
_isExpand = isExpand;
if(isExpand){
self.lbTitle.textColor = [UIColor sam_colorWithHex:@"F1929A"];
[self.ivArrow setTransform:CGAffineTransformMakeRotation(M_PI)];
}else{
self.lbTitle.textColor = [UIColor sam_colorWithHex:@"515151"];
[self.ivArrow setTransform:CGAffineTransformMakeRotation(0)];
}
}
@end
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="12120" systemVersion="16E195" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
<device id="retina4_7" orientation="portrait">
<adaptation id="fullscreen"/>
</device>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12088"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<objects>
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="KWMFilterTabItem">
<connections>
<outlet property="containerView" destination="iN0-l3-epB" id="4uJ-11-hEK"/>
<outlet property="ivArrow" destination="1wv-Qf-Mpm" id="yVW-0M-4Mr"/>
<outlet property="lbTitle" destination="XKx-az-aVp" id="fwZ-S3-5SU"/>
</connections>
</placeholder>
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
<view contentMode="scaleToFill" id="iN0-l3-epB">
<rect key="frame" x="0.0" y="0.0" width="188" height="30"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="X29-gf-6cs">
<rect key="frame" x="0.0" y="0.0" width="188" height="30"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" verticalHuggingPriority="251" text="筛选" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="XKx-az-aVp">
<rect key="frame" x="79.5" y="0.0" width="29" height="30"/>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<color key="textColor" red="0.40000000000000002" green="0.40000000000000002" blue="0.40000000000000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<imageView userInteractionEnabled="NO" contentMode="center" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="ic_arrow_down" translatesAutoresizingMaskIntoConstraints="NO" id="1wv-Qf-Mpm">
<rect key="frame" x="108.5" y="0.0" width="15" height="30"/>
<constraints>
<constraint firstAttribute="width" constant="15" id="8q0-rm-EbE"/>
</constraints>
</imageView>
</subviews>
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<color key="tintColor" red="0.0" green="0.0" blue="0.0" alpha="0.0" colorSpace="custom" customColorSpace="sRGB"/>
<gestureRecognizers/>
<constraints>
<constraint firstItem="1wv-Qf-Mpm" firstAttribute="leading" secondItem="XKx-az-aVp" secondAttribute="trailing" id="B0g-2J-cmY"/>
<constraint firstItem="1wv-Qf-Mpm" firstAttribute="top" secondItem="X29-gf-6cs" secondAttribute="top" id="BQe-6Z-CzL"/>
<constraint firstAttribute="bottom" secondItem="XKx-az-aVp" secondAttribute="bottom" id="ERZ-D0-O2D"/>
<constraint firstAttribute="centerX" secondItem="XKx-az-aVp" secondAttribute="centerX" id="FG6-97-cCo"/>
<constraint firstItem="XKx-az-aVp" firstAttribute="top" secondItem="X29-gf-6cs" secondAttribute="top" id="Wex-w2-URJ"/>
<constraint firstAttribute="bottom" secondItem="1wv-Qf-Mpm" secondAttribute="bottom" id="s9e-lu-b26"/>
</constraints>
</view>
</subviews>
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstItem="X29-gf-6cs" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" id="Ghd-H3-FZ6"/>
<constraint firstAttribute="trailing" secondItem="X29-gf-6cs" secondAttribute="trailing" id="UPA-c4-Vvd"/>
<constraint firstAttribute="bottom" secondItem="X29-gf-6cs" secondAttribute="bottom" id="nLy-LP-Ubo"/>
<constraint firstItem="X29-gf-6cs" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="oTe-ex-8Bj"/>
</constraints>
<freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
<connections>
<outletCollection property="gestureRecognizers" destination="etY-WT-T62" appends="YES" id="Mmr-Wn-3Rk"/>
</connections>
</view>
<tapGestureRecognizer id="etY-WT-T62" userLabel="tapContainer">
<connections>
<action selector="onClickTab:" destination="-1" id="Swg-04-MCg"/>
</connections>
</tapGestureRecognizer>
</objects>
<resources>
<image name="ic_arrow_down" width="6" height="5"/>
</resources>
</document>
//
// KWMFilterView.h
// iCemarose
//
// Created by HouWeiBin on 2017/6/8.
// Copyright © 2017年. All rights reserved.
//
#import <UIKit/UIKit.h>
#import "KWMFilter.h"
#import <Buy/Buy.h>
typedef NS_ENUM(NSInteger, KWMFilterMode) {
ModeFilter,
ModeSort,
ModeBrand //品牌筛选
};
@class KWMFilterView;
@protocol KWMFilterDelegate <NSObject>
@required
- (void)kwm_onFilterFinish:(KWMFilterView *)filterView;
@optional
- (void)kwm_onClickFilterBlank:(KWMFilterView *)filterView;
@end
@interface KWMFilterView : UIView<UICollectionViewDelegate,UICollectionViewDataSource>
@property(nonatomic) KWMFilterMode filterMode;
@property(nonatomic) NSMutableArray<KWMFilter *> *selectedTags;
@property(nonatomic) BUYCollectionSort selectedSort;
@property(nonatomic,weak) id<KWMFilterDelegate> delegate;
@end
//
// KWMFilterView.m
// iCemarose
//
// Created by HouWeiBin on 2017/6/8.
// Copyright © 2017年 kollway. All rights reserved.
//
#import "KWMFilterView.h"
#import "KWMFilterViewCell.h"
#import "UIColor+SAMAdditions.h"
#import "KWMStringUtil.h"
static NSString *filterDataString = @"[{\"group\":\"SEASON\",\"tags\":[\"Spring/Summer 2017\",\"Autumn/Winter 2016\",\"Spring/Summer 2016\",\"Autumn/Winter 2015\"]},{\"group\":\"GENDER\",\"tags\":[\"Girls\",\"Boys\"]},{\"group\":\"SIZE\",\"tags\":[\"0 month\",\"3 month\",\"6 month\",\"9 month\",\"12 month\",\"18 month\",\"2 year\",\"3 year\",\"4 year\",\"5 year\",\"6 year\",\"7 year\",\"8 year\",\"10 year\",\"12 year\",\"14 year\",\"16 year\"]},{\"group\":\"Shoe Size\",\"tags\":[\"18\",\"19\",\"20\",\"21\",\"22\",\"23\",\"24\",\"25\",\"26\",\"27\",\"28\",\"29\",\"30\",\"31\",\"32\",\"33\",\"34\",\"35\",\"37\",\"38\",\"39\"]},{\"group\":\"PRODUCT TYPE\",\"tags\":[\"Accessories\",\"Babysuits\",\"Coats & Jackets\",\"Dresses\",\"Leggings\",\"Raincoat\",\"Sets\",\"Shoes\",\"Skirts\",\"Swimwear\",\"Tights\",\"Tops\",\"Toys\",\"Trousers & Shorts\",\"Underwear\"]}]";
@interface KWMFilterView()
@property(weak,nonatomic) IBOutlet UIView *vContent;
@property(weak,nonatomic) IBOutlet UICollectionView *cvFilter;
//默认为0 新-旧款 1-3依次对应 旧-新款 高-低价 低-高价
@property(nonatomic) NSInteger selectedSortPosition;
-(IBAction)onClickFilter:(id)sender;
@end
@implementation KWMFilterView{
NSArray<KWMFilter *>*filterData;
NSArray *sortData;
NSArray<NSString *>*sortStringData;
}
-(instancetype)initWithFrame:(CGRect)frame{
if(self = [super initWithFrame:frame]){
[self initView];
}
return self;
}
-(instancetype)initWithCoder:(NSCoder *)aDecoder{
if(self = [super initWithCoder:aDecoder]){
[self initView];
}
return self;
}
//初始化
-(void)initView{
[[NSBundle mainBundle] loadNibNamed:NSStringFromClass([KWMFilterView class]) owner:self options:nil];
self.vContent.frame = CGRectMake(0, 0, self.frame.size.width, self.frame.size.height);
[self addSubview:self.vContent];
[self.cvFilter registerClass:[UICollectionReusableView class] forSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"UICollectionViewHeader"];
[self.cvFilter registerNib:[UINib nibWithNibName:NSStringFromClass([KWMFilterViewCell class]) bundle:nil] forCellWithReuseIdentifier:NSStringFromClass([KWMFilterViewCell class])];
UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
layout.minimumLineSpacing = 10;
layout.headerReferenceSize =CGSizeMake(UI_SCREEN_WIDTH - 80,40);//头视图大小
self.cvFilter.collectionViewLayout = layout;
[self initFilterData];
[self initSortData];
self.filterMode = ModeFilter;
self.selectedTags = [NSMutableArray array];
}
-(void)initFilterData{
NSData *data = [filterDataString dataUsingEncoding:NSUTF8StringEncoding];
NSArray *filterDataArray = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
NSMutableArray *mutableArray = [[NSMutableArray alloc] init];
for(NSDictionary *itemJson in filterDataArray){
NSError *error;
id result = [[KWMFilter alloc] initWithDictionary:itemJson error:&error];
if(error){
NSLog(@"buildListData error: %@", [error localizedDescription]);
}else{
[mutableArray addObject:result];
}
}
filterData = [mutableArray copy];
}
-(void)initSortData{
sortStringData = @[@"新-旧款",@"旧-新款",@"高-低价",@"低-高价"];
}
-(BUYCollectionSort)selectedSort{
switch (self.selectedSortPosition) {
case 0:
return BUYCollectionSortCreatedDescending;
case 1:
return BUYCollectionSortCreatedAscending;
case 2:
return BUYCollectionSortPriceDescending;
case 3:
return BUYCollectionSortPriceAscending;
default:
return BUYCollectionSortCreatedDescending;
}
}
-(void)setSelectedTags:(NSMutableArray<KWMFilter *> *)selectedTags{
_selectedTags = selectedTags ? selectedTags:[NSMutableArray array];
[self.cvFilter reloadData];
}
-(void)setFilterMode:(KWMFilterMode)filterMode{
_filterMode = filterMode;
[self.cvFilter reloadData];
}
-(void)onClickFilter:(id)sender{
if(self.delegate){
[self.delegate kwm_onFilterFinish:self];
}
}
//是否选中tag
-(BOOL)isSelectedTag:(KWMFilter *)filter tag:(NSString *)tag{
for(KWMFilter *addedfilter in self.selectedTags){
if([addedfilter.group isEqualToString:filter.group]){
if([addedfilter.tags containsObject:tag]){
return YES;
}
}
}
return NO;
}
//根据点击的tag,来判断应添加tag到选中数据中,还是应将其从选中数据中移除
-(void)refreshSelectedTags:(KWMFilter *)filter tag:(NSString *)tag{
for(KWMFilter *addedfilter in self.selectedTags){
if([addedfilter.group isEqualToString:filter.group]){
if([addedfilter.tags containsObject:tag]){
[addedfilter.tags removeObject:tag];
}else{
[addedfilter.tags addObject:tag];
}
return;
}
}
KWMFilter *mFilter = [filter copy];
[mFilter.tags removeAllObjects];
[mFilter.tags addObject:tag];
[self.selectedTags addObject:mFilter];
}
#pragma mark - UICollectionViewDataSource
-(NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView{
NSInteger count = self.filterMode == ModeFilter?filterData.count:1;
return count;
}
-(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{
NSUInteger count = self.filterMode == ModeFilter?filterData[section].tags.count:4;
return count;
}
-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
KWMFilterViewCell *filterCell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([KWMFilterViewCell class]) forIndexPath:indexPath];
//更新cell
if(self.filterMode == ModeFilter){
KWMFilter *filter = filterData[indexPath.section];
NSString *tag = filter.tags[indexPath.row];
filterCell.text = tag;
filterCell.isSelectedFilter = [self isSelectedTag:filter tag:tag];
}else if(self.filterMode == ModeSort){
filterCell.text = sortStringData[indexPath.row];
filterCell.isSelectedFilter = self.selectedSortPosition == indexPath.row;
}
return filterCell;
}
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
//默认宽高
CGFloat defaultWidth = (UI_SCREEN_WIDTH - 40 * 2 - 13 * 2)/3;
CGFloat defaultHeight = 36;
//获得cell要显示的文字
NSString *text = @"";
if(self.filterMode == ModeFilter){
KWMFilter *filter = filterData[indexPath.section];
text = filter.tags[indexPath.row];
}
//获得字体,计算文字显示所需高度
UIFont *font = [UIFont systemFontOfSize:12];
if(SYSTEM_VERSION_LESS_THAN(@"9.0")){
[UIFont fontWithName:@"PingFang SC" size:12];
}
CGFloat height = [KWMStringUtil getLabelHeight:text labelFont:font textWidth:defaultWidth - 10].height ;
//返回控件实际大小
//Trousers & Shorts 该项与其他项无法对齐,目前暂不清楚是什么原因...只能通过略微加大宽度来减少视觉上的负面影响。
if([text isEqualToString:@"Trousers & Shorts"]){
return CGSizeMake(defaultWidth+5, fmaxf(height + 10,defaultHeight));
}
return CGSizeMake(defaultWidth, fmaxf(height + 10,defaultHeight));
}
//创建头视图
- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView
viewForSupplementaryElementOfKind:(NSString *)kind
atIndexPath:(NSIndexPath *)indexPath {
UICollectionReusableView *headView = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"UICollectionViewHeader" forIndexPath:indexPath];
UILabel *headerLabel = [headView viewWithTag:101];
//如果是新创建的headView,向其中添加label
if(!headerLabel){
headerLabel = [[UILabel alloc]initWithFrame:CGRectMake(0, 15, UI_SCREEN_WIDTH-80,20)];
headerLabel.textColor = [UIColor sam_colorWithHex:@"393939"];
headerLabel.font = [UIFont systemFontOfSize:12];
headerLabel.tag = 101;
[headView addSubview:headerLabel];
}
//更新label
if(self.filterMode == ModeFilter){
KWMFilter *filter = filterData[indexPath.section];
headerLabel.text = filter.group;
}else{
headerLabel.text = @"排序";
}
return headView;
}
-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{
if(self.filterMode == ModeFilter){
KWMFilter *filter = filterData[indexPath.section];
NSString *tag = filter.tags[indexPath.row];
[self refreshSelectedTags:filter tag:tag];
}else if(self.filterMode == ModeSort){
self.selectedSortPosition = indexPath.row;
}
[self.cvFilter reloadData];
}
@end
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="12120" systemVersion="16E195" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
<device id="retina4_7" orientation="portrait">
<adaptation id="fullscreen"/>
</device>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12088"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<objects>
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="KWMFilterView">
<connections>
<outlet property="cvFilter" destination="xOq-Lu-NIJ" id="U2m-de-kD1"/>
<outlet property="vContent" destination="iN0-l3-epB" id="xRL-Ao-DqI"/>
</connections>
</placeholder>
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
<view contentMode="scaleToFill" id="iN0-l3-epB">
<rect key="frame" x="0.0" y="0.0" width="375" height="431"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="jbD-Fx-Doz">
<rect key="frame" x="0.0" y="0.0" width="375" height="431"/>
<subviews>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="mv7-mA-PiS">
<rect key="frame" x="20" y="361" width="335" height="50"/>
<color key="backgroundColor" red="0.14901960784313725" green="0.14901960784313725" blue="0.14901960784313725" alpha="1" colorSpace="calibratedRGB"/>
<constraints>
<constraint firstAttribute="height" constant="50" id="ewu-ud-emW"/>
</constraints>
<fontDescription key="fontDescription" name="PingFangSC-Regular" family="PingFang SC" pointSize="15"/>
<state key="normal" title="完成">
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
</state>
<connections>
<action selector="onClickFilter:" destination="-1" eventType="touchUpInside" id="hvL-GN-Vs9"/>
</connections>
</button>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="SS1-pG-lvf">
<rect key="frame" x="0.0" y="350" width="375" height="1"/>
<color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
<constraints>
<constraint firstAttribute="height" constant="1" id="eO9-gv-xHP"/>
</constraints>
</view>
<collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" dataMode="none" translatesAutoresizingMaskIntoConstraints="NO" id="xOq-Lu-NIJ">
<rect key="frame" x="40" y="0.0" width="295" height="350"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<collectionViewFlowLayout key="collectionViewLayout" minimumLineSpacing="10" minimumInteritemSpacing="10" id="N25-Te-Dke">
<size key="itemSize" width="50" height="50"/>
<size key="headerReferenceSize" width="0.0" height="0.0"/>
<size key="footerReferenceSize" width="0.0" height="0.0"/>
<inset key="sectionInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/>
</collectionViewFlowLayout>
<connections>
<outlet property="dataSource" destination="-1" id="81u-Yl-hQT"/>
<outlet property="delegate" destination="-1" id="0mY-mW-rnL"/>
</connections>
</collectionView>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<constraints>
<constraint firstItem="SS1-pG-lvf" firstAttribute="leading" secondItem="jbD-Fx-Doz" secondAttribute="leading" id="A0q-lS-woK"/>
<constraint firstItem="mv7-mA-PiS" firstAttribute="leading" secondItem="jbD-Fx-Doz" secondAttribute="leading" constant="20" id="CaG-Z1-dTJ"/>
<constraint firstItem="xOq-Lu-NIJ" firstAttribute="top" secondItem="jbD-Fx-Doz" secondAttribute="top" id="GYK-SV-0Ev"/>
<constraint firstItem="SS1-pG-lvf" firstAttribute="top" secondItem="xOq-Lu-NIJ" secondAttribute="bottom" id="JHJ-KK-0i2"/>
<constraint firstAttribute="trailing" secondItem="xOq-Lu-NIJ" secondAttribute="trailing" constant="40" id="Jeg-y1-yfx"/>
<constraint firstAttribute="trailing" secondItem="mv7-mA-PiS" secondAttribute="trailing" constant="20" id="OaW-Ep-cX1"/>
<constraint firstAttribute="trailing" secondItem="SS1-pG-lvf" secondAttribute="trailing" id="YNA-rc-FJJ"/>
<constraint firstItem="mv7-mA-PiS" firstAttribute="top" secondItem="SS1-pG-lvf" secondAttribute="bottom" constant="10" id="ZW9-sx-06t"/>
<constraint firstAttribute="bottom" secondItem="mv7-mA-PiS" secondAttribute="bottom" constant="20" id="vN3-kk-0IM"/>
<constraint firstItem="xOq-Lu-NIJ" firstAttribute="leading" secondItem="jbD-Fx-Doz" secondAttribute="leading" constant="40" id="w6Z-wB-o3f"/>
</constraints>
</view>
</subviews>
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<gestureRecognizers/>
<constraints>
<constraint firstAttribute="trailing" secondItem="jbD-Fx-Doz" secondAttribute="trailing" id="Fk5-nZ-ZTP"/>
<constraint firstItem="jbD-Fx-Doz" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" id="Onf-1J-q5f"/>
<constraint firstItem="jbD-Fx-Doz" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="Trp-bn-hke"/>
<constraint firstAttribute="bottom" secondItem="jbD-Fx-Doz" secondAttribute="bottom" id="eiy-V8-WZa"/>
</constraints>
<nil key="simulatedStatusBarMetrics"/>
<freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
<point key="canvasLocation" x="33.5" y="114.5"/>
</view>
</objects>
</document>
//
// KWMFilterViewCell.h
// iCemarose
//
// Created by HouWeiBin on 2017/6/8.
// Copyright © 2017年 kollway. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface KWMFilterViewCell : UICollectionViewCell
@property (nonatomic) BOOL isSelectedFilter;
@property (nonatomic) NSString *text;
@end
//
// KWMFilterViewCell.m
// iCemarose
//
// Created by HouWeiBin on 2017/6/8.
// Copyright © 2017年 kollway. All rights reserved.
//
#import "KWMFilterViewCell.h"
#import "UIColor+SAMAdditions.h"
#import "UIView+Prettify.h"
@interface KWMFilterViewCell()
@property (weak,nonatomic) IBOutlet UIView *vContent;
@property (weak,nonatomic) IBOutlet UILabel *lbDetail;
@end
@implementation KWMFilterViewCell{
}
- (void)awakeFromNib {
[super awakeFromNib];
[self.vContent setBorder:1 cornerRadius:0 borderColor:[UIColor sam_colorWithHex:@"393939"]];
}
-(void)setIsSelectedFilter:(BOOL)isSelectedFilter{
_isSelectedFilter = isSelectedFilter;
if(isSelectedFilter){
self.lbDetail.textColor = [UIColor whiteColor];
self.vContent.backgroundColor = [UIColor sam_colorWithHex:@"393939"];
}else{
self.lbDetail.textColor = [UIColor sam_colorWithHex:@"393939"];
self.vContent.backgroundColor = [UIColor whiteColor];
}
}
-(void)setText:(NSString *)text{
self.lbDetail.text = text?text:@"";
}
@end
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="12120" systemVersion="16E195" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
<device id="retina4_7" orientation="portrait">
<adaptation id="fullscreen"/>
</device>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12088"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<objects>
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
<collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" id="gTV-IL-0wX" customClass="KWMFilterViewCell">
<rect key="frame" x="0.0" y="0.0" width="91" height="36"/>
<autoresizingMask key="autoresizingMask"/>
<view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
<rect key="frame" x="0.0" y="0.0" width="91" height="36"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ozs-fo-IBI">
<rect key="frame" x="0.0" y="0.0" width="91" height="36"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="秋冬2015" textAlignment="center" lineBreakMode="wordWrap" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="0Pf-Wf-jVh">
<rect key="frame" x="5" y="0.0" width="81" height="36"/>
<fontDescription key="fontDescription" name="PingFangSC-Regular" family="PingFang SC" pointSize="12"/>
<color key="textColor" red="0.22352941176470587" green="0.22352941176470587" blue="0.22352941176470587" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<constraints>
<constraint firstItem="0Pf-Wf-jVh" firstAttribute="leading" secondItem="ozs-fo-IBI" secondAttribute="leading" constant="5" id="CJr-Lw-1sS"/>
<constraint firstAttribute="bottom" secondItem="0Pf-Wf-jVh" secondAttribute="bottom" id="Euw-RL-X6j"/>
<constraint firstItem="0Pf-Wf-jVh" firstAttribute="top" secondItem="ozs-fo-IBI" secondAttribute="top" id="HGc-uo-Pih"/>
<constraint firstAttribute="trailing" secondItem="0Pf-Wf-jVh" secondAttribute="trailing" constant="5" id="l7I-jk-UTD"/>
</constraints>
</view>
</subviews>
</view>
<constraints>
<constraint firstAttribute="bottom" secondItem="ozs-fo-IBI" secondAttribute="bottom" id="1Hx-R9-h15"/>
<constraint firstAttribute="trailing" secondItem="ozs-fo-IBI" secondAttribute="trailing" id="N7x-CL-fQG"/>
<constraint firstItem="ozs-fo-IBI" firstAttribute="leading" secondItem="gTV-IL-0wX" secondAttribute="leading" id="VG6-xI-suF"/>
<constraint firstItem="ozs-fo-IBI" firstAttribute="top" secondItem="gTV-IL-0wX" secondAttribute="top" id="Zwb-zC-ovC"/>
</constraints>
<connections>
<outlet property="lbDetail" destination="0Pf-Wf-jVh" id="nrM-KX-3Q3"/>
<outlet property="vContent" destination="ozs-fo-IBI" id="sQw-Sd-zy3"/>
</connections>
</collectionViewCell>
</objects>
</document>
//
// KWMNormalFilterTab.h
// iCemarose
//
// Created by HouWeiBin on 2017/6/8.
// Copyright © 2017年 kollway. All rights reserved.
//
#import <UIKit/UIKit.h>
#import "KWMFilterTabItem.h"
@protocol KWMNormalFilterTabDelegate <NSObject>
- (void)kwm_onClickTab:(KWMFilterMode)filterMode isExpandView:(BOOL) isExpand;
@end
@interface KWMNormalFilterTab : UIView<FilterTabItemDelegate>
@property(nonatomic,weak) id<KWMNormalFilterTabDelegate> delegate;
-(void)close;
@end
//
// KWMNormalFilterTab.m
// iCemarose
//
// Created by HouWeiBin on 2017/6/8.
// Copyright © 2017年 kollway. All rights reserved.
//
#import "KWMNormalFilterTab.h"
#import "KWMFilterTabItem.h"
@interface KWMNormalFilterTab()
@property(nonatomic,weak) IBOutlet UIView *containerView;
@property(nonatomic,weak) IBOutlet KWMFilterTabItem *vLeft;
@property(nonatomic,weak) IBOutlet KWMFilterTabItem *vRight;
@end
@implementation KWMNormalFilterTab
-(void)awakeFromNib{
[super awakeFromNib];
[self initView];
}
-(void)initView{
[[NSBundle mainBundle] loadNibNamed:NSStringFromClass([self class])
owner:self
options:nil];
self.containerView.frame = CGRectMake(0, 0, self.frame.size.width, self.frame.size.height);
self.backgroundColor = [UIColor redColor];
[self addSubview:self.containerView];
self.vLeft.filterMode = ModeFilter;
self.vRight.filterMode = ModeSort;
self.vLeft.delegate = self;
self.vRight.delegate = self;
}
-(void)kwm_onClickTabItem:(KWMFilterTabItem *)item isExpandView:(BOOL)isExpand{
self.vLeft.isExpand = item.filterMode == ModeFilter? isExpand: NO;
self.vRight.isExpand = item.filterMode == ModeSort? isExpand: NO;
if(self.delegate){
[self.delegate kwm_onClickTab:item.filterMode isExpandView:isExpand];
}
}
-(void)close{
self.vLeft.isExpand = NO;
self.vRight.isExpand = NO;
}
@end
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="12120" systemVersion="16E195" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
<device id="retina4_7" orientation="portrait">
<adaptation id="fullscreen"/>
</device>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12120"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<objects>
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="KWMNormalFilterTab">
<connections>
<outlet property="containerView" destination="iN0-l3-epB" id="btB-pv-WTY"/>
<outlet property="vLeft" destination="SlH-TR-5Jd" id="UMx-8j-Rmg"/>
<outlet property="vRight" destination="Zym-UK-hE9" id="5HR-sc-5ah"/>
</connections>
</placeholder>
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
<view contentMode="scaleToFill" id="iN0-l3-epB">
<rect key="frame" x="0.0" y="0.0" width="375" height="30"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="LuV-Yr-gBK">
<rect key="frame" x="0.0" y="0.0" width="375" height="30"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="niD-9D-3MP">
<rect key="frame" x="0.0" y="0.0" width="375" height="30"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="SlH-TR-5Jd" userLabel="vLeft" customClass="KWMFilterTabItem">
<rect key="frame" x="0.0" y="0.0" width="186.5" height="30"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
</view>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Zym-UK-hE9" userLabel="vRight" customClass="KWMFilterTabItem">
<rect key="frame" x="187.5" y="0.0" width="187.5" height="30"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
</view>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="cNw-Hg-ifw" userLabel="vMidLine">
<rect key="frame" x="186.5" y="5" width="1" height="20"/>
<color key="backgroundColor" red="0.94509803921568625" green="0.5725490196078431" blue="0.60392156862745094" alpha="1" colorSpace="calibratedRGB"/>
<constraints>
<constraint firstAttribute="width" constant="1" id="LFK-yW-WER"/>
<constraint firstAttribute="height" constant="20" id="iCR-rK-nTf"/>
</constraints>
</view>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="UTV-01-O0q">
<rect key="frame" x="0.0" y="29" width="375" height="1"/>
<color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
<constraints>
<constraint firstAttribute="height" constant="1" id="hcy-0b-OH8"/>
</constraints>
</view>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<constraints>
<constraint firstItem="cNw-Hg-ifw" firstAttribute="centerY" secondItem="niD-9D-3MP" secondAttribute="centerY" id="1Q4-53-h8q"/>
<constraint firstItem="UTV-01-O0q" firstAttribute="leading" secondItem="niD-9D-3MP" secondAttribute="leading" id="4fs-NC-Pmf"/>
<constraint firstItem="cNw-Hg-ifw" firstAttribute="leading" secondItem="SlH-TR-5Jd" secondAttribute="trailing" id="4vk-Tx-4Ha"/>
<constraint firstItem="SlH-TR-5Jd" firstAttribute="leading" secondItem="niD-9D-3MP" secondAttribute="leading" id="CDn-j9-ObI"/>
<constraint firstAttribute="bottom" secondItem="SlH-TR-5Jd" secondAttribute="bottom" id="CMS-82-bOw"/>
<constraint firstAttribute="trailing" secondItem="Zym-UK-hE9" secondAttribute="trailing" id="HZI-ss-IJR"/>
<constraint firstItem="Zym-UK-hE9" firstAttribute="top" secondItem="niD-9D-3MP" secondAttribute="top" id="LDd-7G-HYl"/>
<constraint firstAttribute="bottom" secondItem="UTV-01-O0q" secondAttribute="bottom" id="WaW-39-fOB"/>
<constraint firstAttribute="trailing" secondItem="UTV-01-O0q" secondAttribute="trailing" id="dai-nt-KBh"/>
<constraint firstItem="Zym-UK-hE9" firstAttribute="leading" secondItem="cNw-Hg-ifw" secondAttribute="trailing" id="fsa-71-cRm"/>
<constraint firstItem="cNw-Hg-ifw" firstAttribute="centerX" secondItem="niD-9D-3MP" secondAttribute="centerX" id="myE-jB-XyF"/>
<constraint firstItem="SlH-TR-5Jd" firstAttribute="top" secondItem="niD-9D-3MP" secondAttribute="top" id="qfr-Fe-drH"/>
<constraint firstAttribute="bottom" secondItem="Zym-UK-hE9" secondAttribute="bottom" id="ubg-Bm-VCZ"/>
</constraints>
</view>
</subviews>
<color key="backgroundColor" red="0.95686274509803915" green="0.96078431372549022" blue="0.96862745098039216" alpha="1" colorSpace="calibratedRGB"/>
<constraints>
<constraint firstItem="niD-9D-3MP" firstAttribute="top" secondItem="LuV-Yr-gBK" secondAttribute="top" id="B35-Gh-HUH"/>
<constraint firstItem="niD-9D-3MP" firstAttribute="leading" secondItem="LuV-Yr-gBK" secondAttribute="leading" id="bXh-Fv-MwB"/>
<constraint firstAttribute="bottom" secondItem="niD-9D-3MP" secondAttribute="bottom" id="kBS-Ha-BHH"/>
<constraint firstAttribute="trailing" secondItem="niD-9D-3MP" secondAttribute="trailing" id="oBo-P7-HJ0"/>
</constraints>
</view>
</subviews>
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstAttribute="trailing" secondItem="LuV-Yr-gBK" secondAttribute="trailing" id="B8a-Nc-07q"/>
<constraint firstItem="LuV-Yr-gBK" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="GOW-rL-l2N"/>
<constraint firstItem="LuV-Yr-gBK" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" id="O8L-Vm-Qjt"/>
<constraint firstAttribute="bottom" secondItem="LuV-Yr-gBK" secondAttribute="bottom" id="UfQ-OM-vVm"/>
</constraints>
<nil key="simulatedStatusBarMetrics"/>
<freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
<point key="canvasLocation" x="89.5" y="108.5"/>
</view>
</objects>
</document>
//
// KWMNormalFilterView.h
// iCemarose
//
// Created by HouWeiBin on 2017/6/8.
// Copyright © 2017年 kollway. All rights reserved.
//
#import <UIKit/UIKit.h>
#import "KWMFilterView.h"
@interface KWMNormalFilterView : UIView
@property(nonatomic) KWMFilterMode filterMode;
@property(nonatomic,weak) id<KWMFilterDelegate> delegate;
@property(nonatomic) NSMutableArray<KWMFilter *> *selectedTags;
@property(nonatomic) BUYCollectionSort selectedSort;
-(void)show;
@end
//
// KWMTopFilterView.m
// iCemarose
//
// Created by HouWeiBin on 2017/6/8.
// Copyright © 2017年 kollway. All rights reserved.
//
#import "KWMNormalFilterView.h"
@interface KWMNormalFilterView()
@property(weak,nonatomic) IBOutlet UIView *vContent;
@property(weak,nonatomic) IBOutlet KWMFilterView *filterView;
@property(weak,nonatomic) IBOutlet NSLayoutConstraint *heightFilter;
@property(weak,nonatomic) IBOutlet NSLayoutConstraint *marginTopFilter;
-(IBAction)onClickBlank:(id)sender;
@end
@implementation KWMNormalFilterView
-(instancetype)initWithFrame:(CGRect)frame{
if(self = [super initWithFrame:frame]){
[self initView];
}
return self;
}
-(instancetype)initWithCoder:(NSCoder *)aDecoder{
if(self = [super initWithCoder:aDecoder]){
[self initView];
}
return self;
}
//初始化
-(void)initView{
[[NSBundle mainBundle] loadNibNamed:NSStringFromClass([self class]) owner:self options:nil];
self.vContent.frame = CGRectMake(0, 0, self.frame.size.width, self.frame.size.height);
[self addSubview:self.vContent];
}
-(void)setFilterMode:(KWMFilterMode)filterMode{
_filterMode = filterMode;
self.filterView.filterMode = filterMode;
self.heightFilter.constant = filterMode == ModeFilter?self.frame.size.height * 0.7:210;
}
-(void)setDelegate:(id<KWMFilterDelegate>)delegate{
_delegate = delegate;
self.filterView.delegate = delegate;
}
-(BUYCollectionSort)selectedSort{
return self.filterView.selectedSort;
}
-(NSMutableArray<KWMFilter *> *)selectedTags{
return self.filterView.selectedTags;
}
-(void)onClickBlank:(id)sender{
if(self.delegate && [self.delegate respondsToSelector:@selector(kwm_onClickFilterBlank:)]){
[self.delegate kwm_onClickFilterBlank:self.filterView];
}
self.hidden = YES;
}
-(void)show{
if(self.hidden){
self.marginTopFilter.constant = -self.heightFilter.constant;
self.hidden = NO;
[self layoutIfNeeded];
[UIView animateWithDuration:self.filterMode == ModeFilter?0.5:0.25 animations:^{
self.marginTopFilter.constant = 0;
[self layoutIfNeeded];
}];
}
}
@end
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="12121" systemVersion="16F73" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
<device id="retina4_7" orientation="portrait">
<adaptation id="fullscreen"/>
</device>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12089"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<objects>
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="KWMNormalFilterView">
<connections>
<outlet property="filterView" destination="AFM-lg-PjC" id="pNw-rv-IvA"/>
<outlet property="heightFilter" destination="6KX-Dg-66z" id="Wo3-eH-eHC"/>
<outlet property="marginTopFilter" destination="SiA-l8-az5" id="Azb-Jh-GQP"/>
<outlet property="vContent" destination="iN0-l3-epB" id="7BZ-YQ-Bpg"/>
</connections>
</placeholder>
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
<view contentMode="scaleToFill" id="iN0-l3-epB">
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="vsx-Tb-ugb">
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<subviews>
<view alpha="0.5" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="z7B-Ta-Qar" userLabel="Blank">
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
<gestureRecognizers/>
<connections>
<outletCollection property="gestureRecognizers" destination="XTx-4h-dka" appends="YES" id="BFR-eg-lnB"/>
</connections>
</view>
<view clipsSubviews="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="AFM-lg-PjC" customClass="KWMFilterView">
<rect key="frame" x="0.0" y="0.0" width="375" height="300"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<constraints>
<constraint firstAttribute="height" constant="300" id="6KX-Dg-66z"/>
</constraints>
</view>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
<constraints>
<constraint firstAttribute="bottom" secondItem="z7B-Ta-Qar" secondAttribute="bottom" id="ARt-a6-IfB"/>
<constraint firstAttribute="trailing" secondItem="z7B-Ta-Qar" secondAttribute="trailing" id="AgG-Je-tFg"/>
<constraint firstItem="z7B-Ta-Qar" firstAttribute="top" secondItem="vsx-Tb-ugb" secondAttribute="top" id="OgI-6M-n7R"/>
<constraint firstItem="z7B-Ta-Qar" firstAttribute="leading" secondItem="vsx-Tb-ugb" secondAttribute="leading" id="QvB-kf-QnC"/>
<constraint firstItem="AFM-lg-PjC" firstAttribute="top" secondItem="vsx-Tb-ugb" secondAttribute="top" id="SiA-l8-az5"/>
<constraint firstItem="AFM-lg-PjC" firstAttribute="leading" secondItem="vsx-Tb-ugb" secondAttribute="leading" id="fsU-Xp-mDE"/>
<constraint firstAttribute="trailing" secondItem="AFM-lg-PjC" secondAttribute="trailing" id="y3m-QH-Uah"/>
</constraints>
</view>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
<constraints>
<constraint firstItem="vsx-Tb-ugb" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" id="3yR-fD-Fn8"/>
<constraint firstItem="vsx-Tb-ugb" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="AZz-DG-Djx"/>
<constraint firstAttribute="bottom" secondItem="vsx-Tb-ugb" secondAttribute="bottom" id="gps-dw-eNb"/>
<constraint firstAttribute="trailing" secondItem="vsx-Tb-ugb" secondAttribute="trailing" id="ttf-rG-sW2"/>
</constraints>
<nil key="simulatedStatusBarMetrics"/>
</view>
<tapGestureRecognizer id="XTx-4h-dka" userLabel="tapBlank">
<connections>
<action selector="onClickBlank:" destination="-1" id="7wU-Df-M9v"/>
</connections>
</tapGestureRecognizer>
</objects>
</document>
//
// UIView+Prettify.h
// SchedulePlan
//
// Created by HouWeiBin on 2016/12/23.
// Copyright © 2016年 kollway. All rights reserved.
//
// 用于uiview的装饰,如添加边框,阴影。
#import <UIKit/UIKit.h>
@interface UIView (Prettify)
//设置边框
-(void)setBorder:(CGFloat)width cornerRadius:(CGFloat)cornerRadius borderColor:(UIColor *)borderColor;
//设置阴影
-(void)setShadow:(CGSize)shadowOffset shadowRadius:(CGFloat)shadowRadius shadowOpacity:(CGFloat)shadowOpacity shadowColor:(UIColor *)shadowColor;
//设置默认阴影
-(void)initDefaultShadow;
@end
//
// UIView+Prettify.m
// SchedulePlan
//
// Created by HouWeiBin on 2016/12/23.
// Copyright © 2016年 kollway. All rights reserved.
//
#import "UIView+Prettify.h"
@implementation UIView (Prettify)
-(void)setBorder:(CGFloat)width cornerRadius:(CGFloat)cornerRadius borderColor:(UIColor *)borderColor{
self.layer.cornerRadius = cornerRadius;
self.layer.masksToBounds = YES;
self.layer.borderWidth = width;
self.layer.borderColor = borderColor.CGColor;
}
-(void)setShadow:(CGSize)shadowOffset shadowRadius:(CGFloat)shadowRadius shadowOpacity:(CGFloat)shadowOpacity shadowColor:(UIColor *)shadowColor{
self.layer.shadowColor = shadowColor.CGColor;//shadowColor阴影颜色
self.layer.shadowOffset = shadowOffset;//shadowOffset阴影偏移,x向右偏移,y向下偏移,默认(0, -3),这个跟shadowRadius配合使用
self.layer.shadowOpacity = shadowOpacity;//阴影透明度,默认0
self.layer.shadowRadius = shadowRadius;//阴影半径,默认3
}
-(void)initDefaultShadow{
[self setShadow:CGSizeMake(0,1) shadowRadius:4 shadowOpacity:0.1 shadowColor:[UIColor blackColor]];
}
@end
......@@ -24,6 +24,7 @@
#define UI_SCREEN_HEITHT ([[UIScreen mainScreen] bounds].size.height)
#define KWMAPI_URL(path) [NSURL URLWithString:[[KWMAPIManager sharedManager] toAbsoluteUrl:path]]
#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)
#define SYSTEM_VERSION_LESS_THAN(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedAscending)
#define KWMTextTips 0
#define KWMNoDataTips 1
#define KWMNoLike 2
......@@ -61,7 +62,7 @@
#define Cemarose_KEY @"4a119ac523d53c98bbd2983b798a0d53"
//
////
////测试
//#define TestModel @"YES"
//
......
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