Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
I
ios1x
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
cemarose
ios1x
Commits
af1531be
Commit
af1531be
authored
Jul 13, 2017
by
houweibin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1,商品详情完善
2,fix error
parent
97e77983
Show whitespace changes
Inline
Side-by-side
Showing
22 changed files
with
541 additions
and
377 deletions
+541
-377
project.pbxproj
iCemarose.xcodeproj/project.pbxproj
+13
-13
KWMAPIManager.m
iCemarose/Class/Api/KWMAPIManager.m
+4
-4
KWMAdditionalListResult.m
iCemarose/Class/Api/KWMAdditionalListResult.m
+1
-1
KWMColor.h
iCemarose/Class/Model/KWMColor.h
+1
-1
KWMFirstDetailView.h
iCemarose/Class/UI/NewProduct/Cell/KWMFirstDetailView.h
+8
-1
KWMFirstDetailView.m
iCemarose/Class/UI/NewProduct/Cell/KWMFirstDetailView.m
+24
-13
KWMFirstDetailView.xib
iCemarose/Class/UI/NewProduct/Cell/KWMFirstDetailView.xib
+16
-34
KWMMidDetailView.h
iCemarose/Class/UI/NewProduct/Cell/KWMMidDetailView.h
+7
-3
KWMMidDetailView.m
iCemarose/Class/UI/NewProduct/Cell/KWMMidDetailView.m
+32
-15
KWMMidDetailView.xib
iCemarose/Class/UI/NewProduct/Cell/KWMMidDetailView.xib
+81
-0
KWMProductColorCell.m
iCemarose/Class/UI/NewProduct/Cell/KWMProductColorCell.m
+1
-1
KWMProductSizeCell.xib
iCemarose/Class/UI/NewProduct/Cell/KWMProductSizeCell.xib
+13
-22
KWMSecondDetailView.h
iCemarose/Class/UI/NewProduct/Cell/KWMSecondDetailView.h
+1
-0
KWMThirdDetailView.xib
iCemarose/Class/UI/NewProduct/Cell/KWMThirdDetailView.xib
+0
-92
KWMNewProductVC.h
iCemarose/Class/UI/NewProduct/KWMNewProductVC.h
+2
-1
KWMNewProductVC.m
iCemarose/Class/UI/NewProduct/KWMNewProductVC.m
+199
-66
KWMVariantsVC.h
iCemarose/Class/UI/NewProduct/KWMVariantsVC.h
+8
-1
KWMVariantsVC.m
iCemarose/Class/UI/NewProduct/KWMVariantsVC.m
+74
-58
KWMWishListVC.m
iCemarose/Class/UI/NewProduct/KWMWishListVC.m
+0
-1
NewProduct.storyboard
iCemarose/Class/UI/NewProduct/NewProduct.storyboard
+35
-23
KWMShopCartVC.h
iCemarose/Class/UI/ShopCart/KWMShopCartVC.h
+3
-1
KWMShopCartVC.m
iCemarose/Class/UI/ShopCart/KWMShopCartVC.m
+18
-26
No files found.
iCemarose.xcodeproj/project.pbxproj
View file @
af1531be
...
...
@@ -230,6 +230,8 @@
C04834561F13590500A5BFB4
/* KWMClothingSetsCell.xib in Resources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
C04834521F13590500A5BFB4
/* KWMClothingSetsCell.xib */
;
};
C048B8E21EF3C04B000DA7AF
/* KWMBeforePayData.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
C048B8E11EF3C04B000DA7AF
/* KWMBeforePayData.m */
;
};
C048B8E51EF3F20B000DA7AF
/* KWMCollectionRefreshUtil.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
C048B8E41EF3F20B000DA7AF
/* KWMCollectionRefreshUtil.m */
;
};
C057C77D1F172D4C00B95034
/* KWMMidDetailView.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
C057C77C1F172D4C00B95034
/* KWMMidDetailView.m */
;
};
C057C77F1F172D8E00B95034
/* KWMMidDetailView.xib in Resources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
C057C77E1F172D8E00B95034
/* KWMMidDetailView.xib */
;
};
C05910941E34A729002990B3
/* KWMNewGiftCardCell.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
C05910921E34A729002990B3
/* KWMNewGiftCardCell.m */
;
};
C05910951E34A729002990B3
/* KWMNewGiftCardCell.xib in Resources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
C05910931E34A729002990B3
/* KWMNewGiftCardCell.xib */
;
};
C06665091D75A2E500F02EF4
/* KWMOrderCell.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
C06665041D75A2E500F02EF4
/* KWMOrderCell.m */
;
};
...
...
@@ -260,8 +262,6 @@
C0A6B3C31F01FC5300D85673
/* KWMProductSizeCell.xib in Resources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
C0A6B3B21F01FC5300D85673
/* KWMProductSizeCell.xib */
;
};
C0A6B3C41F01FC5300D85673
/* KWMSecondDetailView.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
C0A6B3B41F01FC5300D85673
/* KWMSecondDetailView.m */
;
};
C0A6B3C51F01FC5300D85673
/* KWMSecondDetailView.xib in Resources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
C0A6B3B51F01FC5300D85673
/* KWMSecondDetailView.xib */
;
};
C0A6B3C61F01FC5300D85673
/* KWMThirdDetailView.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
C0A6B3B71F01FC5300D85673
/* KWMThirdDetailView.m */
;
};
C0A6B3C71F01FC5300D85673
/* KWMThirdDetailView.xib in Resources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
C0A6B3B81F01FC5300D85673
/* KWMThirdDetailView.xib */
;
};
C0A6B3C81F01FC5300D85673
/* KWMNewProductVC.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
C0A6B3BA1F01FC5300D85673
/* KWMNewProductVC.m */
;
};
C0A6B3C91F01FC5300D85673
/* KWMVariantsVC.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
C0A6B3BC1F01FC5300D85673
/* KWMVariantsVC.m */
;
};
C0A6B3CA1F01FC5300D85673
/* NewProduct.storyboard in Resources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
C0A6B3BD1F01FC5300D85673
/* NewProduct.storyboard */
;
};
...
...
@@ -768,6 +768,9 @@
C048B8E11EF3C04B000DA7AF
/* KWMBeforePayData.m */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.objc
;
path
=
KWMBeforePayData.m
;
sourceTree
=
"<group>"
;
};
C048B8E31EF3F20B000DA7AF
/* KWMCollectionRefreshUtil.h */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.h
;
path
=
KWMCollectionRefreshUtil.h
;
sourceTree
=
"<group>"
;
};
C048B8E41EF3F20B000DA7AF
/* KWMCollectionRefreshUtil.m */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.objc
;
path
=
KWMCollectionRefreshUtil.m
;
sourceTree
=
"<group>"
;
};
C057C77B1F172D4C00B95034
/* KWMMidDetailView.h */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.h
;
path
=
KWMMidDetailView.h
;
sourceTree
=
"<group>"
;
};
C057C77C1F172D4C00B95034
/* KWMMidDetailView.m */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.objc
;
path
=
KWMMidDetailView.m
;
sourceTree
=
"<group>"
;
};
C057C77E1F172D8E00B95034
/* KWMMidDetailView.xib */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
file.xib
;
path
=
KWMMidDetailView.xib
;
sourceTree
=
"<group>"
;
};
C05910911E34A729002990B3
/* KWMNewGiftCardCell.h */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.h
;
name
=
KWMNewGiftCardCell.h
;
path
=
../../ShopCart/Cell/KWMNewGiftCardCell.h
;
sourceTree
=
"<group>"
;
};
C05910921E34A729002990B3
/* KWMNewGiftCardCell.m */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.objc
;
name
=
KWMNewGiftCardCell.m
;
path
=
../../ShopCart/Cell/KWMNewGiftCardCell.m
;
sourceTree
=
"<group>"
;
};
C05910931E34A729002990B3
/* KWMNewGiftCardCell.xib */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
file.xib
;
name
=
KWMNewGiftCardCell.xib
;
path
=
../../ShopCart/Cell/KWMNewGiftCardCell.xib
;
sourceTree
=
"<group>"
;
};
...
...
@@ -819,9 +822,6 @@
C0A6B3B31F01FC5300D85673
/* KWMSecondDetailView.h */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.h
;
path
=
KWMSecondDetailView.h
;
sourceTree
=
"<group>"
;
};
C0A6B3B41F01FC5300D85673
/* KWMSecondDetailView.m */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.objc
;
path
=
KWMSecondDetailView.m
;
sourceTree
=
"<group>"
;
};
C0A6B3B51F01FC5300D85673
/* KWMSecondDetailView.xib */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
file.xib
;
path
=
KWMSecondDetailView.xib
;
sourceTree
=
"<group>"
;
};
C0A6B3B61F01FC5300D85673
/* KWMThirdDetailView.h */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.h
;
path
=
KWMThirdDetailView.h
;
sourceTree
=
"<group>"
;
};
C0A6B3B71F01FC5300D85673
/* KWMThirdDetailView.m */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.objc
;
path
=
KWMThirdDetailView.m
;
sourceTree
=
"<group>"
;
};
C0A6B3B81F01FC5300D85673
/* KWMThirdDetailView.xib */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
file.xib
;
path
=
KWMThirdDetailView.xib
;
sourceTree
=
"<group>"
;
};
C0A6B3B91F01FC5300D85673
/* KWMNewProductVC.h */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.h
;
path
=
KWMNewProductVC.h
;
sourceTree
=
"<group>"
;
};
C0A6B3BA1F01FC5300D85673
/* KWMNewProductVC.m */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.objc
;
path
=
KWMNewProductVC.m
;
sourceTree
=
"<group>"
;
};
C0A6B3BB1F01FC5300D85673
/* KWMVariantsVC.h */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.h
;
path
=
KWMVariantsVC.h
;
sourceTree
=
"<group>"
;
};
...
...
@@ -2007,18 +2007,18 @@
C0A6B3AA1F01FC5300D85673
/* KWMFirstDetailView.h */
,
C0A6B3AB1F01FC5300D85673
/* KWMFirstDetailView.m */
,
C0A6B3AC1F01FC5300D85673
/* KWMFirstDetailView.xib */
,
C0A6B3B31F01FC5300D85673
/* KWMSecondDetailView.h */
,
C0A6B3B41F01FC5300D85673
/* KWMSecondDetailView.m */
,
C0A6B3B51F01FC5300D85673
/* KWMSecondDetailView.xib */
,
C057C77B1F172D4C00B95034
/* KWMMidDetailView.h */
,
C057C77C1F172D4C00B95034
/* KWMMidDetailView.m */
,
C057C77E1F172D8E00B95034
/* KWMMidDetailView.xib */
,
C0A6B3AD1F01FC5300D85673
/* KWMProductColorCell.h */
,
C0A6B3AE1F01FC5300D85673
/* KWMProductColorCell.m */
,
C0A6B3AF1F01FC5300D85673
/* KWMProductColorCell.xib */
,
C0A6B3B01F01FC5300D85673
/* KWMProductSizeCell.h */
,
C0A6B3B11F01FC5300D85673
/* KWMProductSizeCell.m */
,
C0A6B3B21F01FC5300D85673
/* KWMProductSizeCell.xib */
,
C0A6B3B31F01FC5300D85673
/* KWMSecondDetailView.h */
,
C0A6B3B41F01FC5300D85673
/* KWMSecondDetailView.m */
,
C0A6B3B51F01FC5300D85673
/* KWMSecondDetailView.xib */
,
C0A6B3B61F01FC5300D85673
/* KWMThirdDetailView.h */
,
C0A6B3B71F01FC5300D85673
/* KWMThirdDetailView.m */
,
C0A6B3B81F01FC5300D85673
/* KWMThirdDetailView.xib */
,
C029868C1F0F2663002EB25F
/* KWMWishCell.h */
,
C029868D1F0F2663002EB25F
/* KWMWishCell.m */
,
C029868E1F0F2663002EB25F
/* KWMWishCell.xib */
,
...
...
@@ -2384,6 +2384,7 @@
C0392DBA1DCC38450051AC8E
/* KWMShippingCell.xib in Resources */
,
C0CCB3D01EEA765B00BC2FB8
/* KWMFilterTabItem.xib in Resources */
,
80DD275B1DC2FE6800CDC5B5
/* Home.storyboard in Resources */
,
C057C77F1F172D8E00B95034
/* KWMMidDetailView.xib in Resources */
,
80A611AF1D6DB0CD00709E09
/* ShopCart.storyboard in Resources */
,
C02C7D811E640D82008DC29C
/* README.txt in Resources */
,
C0DD531F1EE54F5D002D1E0C
/* KWMMineTitleView.xib in Resources */
,
...
...
@@ -2413,7 +2414,6 @@
C0CCB3BA1EEA579900BC2FB8
/* KWMFilterView.xib in Resources */
,
C0CCB3C21EEA59A200BC2FB8
/* KWMFilterViewCell.xib in Resources */
,
C0CC14171D79826F007B5986
/* KWMAddressCell.xib in Resources */
,
C0A6B3C71F01FC5300D85673
/* KWMThirdDetailView.xib in Resources */
,
804771821D6D32A70086B4DC
/* Login.storyboard in Resources */
,
C0DD53241EE55062002D1E0C
/* KWMCarCountView.xib in Resources */
,
C0A6B3C51F01FC5300D85673
/* KWMSecondDetailView.xib in Resources */
,
...
...
@@ -2520,7 +2520,6 @@
C04834411F13350F00A5BFB4
/* KWMRecommendHeader.m in Sources */
,
C0F586951E25C17A001248E2
/* KWMProductDetailVC.m in Sources */
,
C0F586871E24F820001248E2
/* KWMNewTypeSelectedVC.m in Sources */
,
C0A6B3C61F01FC5300D85673
/* KWMThirdDetailView.m in Sources */
,
80598D471D99193400BF0F97
/* KWMInformationVC.m in Sources */
,
C034E7B91D6B0A8D006EE129
/* KWMHomeVC.m in Sources */
,
C0CCB3BD1EEA589200BC2FB8
/* KWMFilter.m in Sources */
,
...
...
@@ -2629,6 +2628,7 @@
C066650F1D7675FC00F02EF4
/* KWMAboutUsVC.m in Sources */
,
807AF4A31DC984950000A326
/* KWMBlogResult.m in Sources */
,
C0CC14081D7823B0007B5986
/* KWMSizeCell.m in Sources */
,
C057C77D1F172D4C00B95034
/* KWMMidDetailView.m in Sources */
,
DAB6431A1F04CFE5002CD7FE
/* AppDelegate+Deeplink.m in Sources */
,
C06665121D767A0A00F02EF4
/* KWMContactUsVC.m in Sources */
,
C034E6CF1D6AEE39006EE129
/* KWMUserDao.m in Sources */
,
...
...
iCemarose/Class/Api/KWMAPIManager.m
View file @
af1531be
...
...
@@ -870,7 +870,7 @@ static NSString *const passwordTest = @"9e84aae218c57cdf0762763c4cf5a651";
-
(
NSURLSessionDataTask
*
)
saveWish
:
(
NSDictionary
*
)
parameters
success
:
(
void
(
^
)(
NSURLSessionDataTask
*
task
,
KWMAdditionalListResult
*
result
))
success
failure
:
(
void
(
^
)(
NSURLSessionDataTask
*
task
,
NSError
*
error
))
failure
{
NSString
*
apiPath
=
[
NSString
stringWithFormat
:
@"https://%@/app/wishlist-save"
,
@"
chris.tofnews
.com"
];
NSString
*
apiPath
=
[
NSString
stringWithFormat
:
@"https://%@/app/wishlist-save"
,
@"
test.cemarose
.com"
];
return
[
self
startSessionTask
:
KWMHTTPMethodPOST
apiPath
:
apiPath
parameters
:
parameters
...
...
@@ -890,7 +890,7 @@ static NSString *const passwordTest = @"9e84aae218c57cdf0762763c4cf5a651";
-
(
NSURLSessionDataTask
*
)
getWishList
:
(
NSDictionary
*
)
parameters
success
:
(
void
(
^
)(
NSURLSessionDataTask
*
task
,
KWMAdditionalListResult
*
result
))
success
failure
:
(
void
(
^
)(
NSURLSessionDataTask
*
task
,
NSError
*
error
))
failure
{
NSString
*
apiPath
=
[
NSString
stringWithFormat
:
@"https://%@/app/wishlist"
,
@"
chris.tofnews
.com"
];
NSString
*
apiPath
=
[
NSString
stringWithFormat
:
@"https://%@/app/wishlist"
,
@"
test.cemarose
.com"
];
return
[
self
startSessionTask
:
KWMHTTPMethodGET
apiPath
:
apiPath
parameters
:
parameters
...
...
@@ -910,7 +910,7 @@ static NSString *const passwordTest = @"9e84aae218c57cdf0762763c4cf5a651";
-
(
NSURLSessionDataTask
*
)
removeWish
:
(
NSDictionary
*
)
parameters
success
:
(
void
(
^
)(
NSURLSessionDataTask
*
task
,
KWMAdditionalListResult
*
result
))
success
failure
:
(
void
(
^
)(
NSURLSessionDataTask
*
task
,
NSError
*
error
))
failure
{
NSString
*
apiPath
=
[
NSString
stringWithFormat
:
@"https://%@/app/wishlist-prune"
,
@"
chris.tofnews
.com"
];
NSString
*
apiPath
=
[
NSString
stringWithFormat
:
@"https://%@/app/wishlist-prune"
,
@"
test.cemarose
.com"
];
return
[
self
startSessionTask
:
KWMHTTPMethodPOST
apiPath
:
apiPath
parameters
:
parameters
...
...
@@ -929,7 +929,7 @@ static NSString *const passwordTest = @"9e84aae218c57cdf0762763c4cf5a651";
-
(
NSURLSessionDataTask
*
)
clearWishList
:
(
NSDictionary
*
)
parameters
success
:
(
void
(
^
)(
NSURLSessionDataTask
*
task
,
KWMAdditionalListResult
*
result
))
success
failure
:
(
void
(
^
)(
NSURLSessionDataTask
*
task
,
NSError
*
error
))
failure
{
NSString
*
apiPath
=
[
NSString
stringWithFormat
:
@"https://%@/app/wishlist-delete"
,
@"
chris.tofnews
.com"
];
NSString
*
apiPath
=
[
NSString
stringWithFormat
:
@"https://%@/app/wishlist-delete"
,
@"
test.cemarose
.com"
];
return
[
self
startSessionTask
:
KWMHTTPMethodPOST
apiPath
:
apiPath
parameters
:
parameters
...
...
iCemarose/Class/Api/KWMAdditionalListResult.m
View file @
af1531be
...
...
@@ -14,7 +14,7 @@
modelClass
:(
Class
)
modelClass
error
:(
NSError
**
)
err
{
self
=
[
super
initWithDictionary
:
dict
error
:
err
];
if
(
self
)
{
if
(
self
&&
modelClass
)
{
NSArray
*
dataArray
=
dict
[
@"data"
];
if
(
dataArray
){
self
.
data
=
[
self
buildListData
:
modelClass
jsonDictionary
:
dataArray
];
...
...
iCemarose/Class/Model/KWMColor.h
View file @
af1531be
...
...
@@ -19,7 +19,7 @@
@property
(
nonatomic
)
NSString
*
handle
;
//颜色代表的商品
@property
(
nonatomic
)
BUYProduct
*
prod
cu
t
;
@property
(
nonatomic
)
BUYProduct
*
prod
uc
t
;
//admin拿到的商品,在选择规格的页面才会去请求拿到给它赋值
@property
(
nonatomic
)
KWMProduct
*
adminProduct
;
...
...
iCemarose/Class/UI/NewProduct/Cell/KWMFirstDetailView.h
View file @
af1531be
...
...
@@ -7,6 +7,7 @@
//
#import "Buy/Buy.h"
#import "KWMColor.h"
@protocol
KWMFirstDetailViewDelegate
<
NSObject
>
...
...
@@ -20,7 +21,13 @@
@property
(
weak
,
nonatomic
)
id
<
KWMFirstDetailViewDelegate
>
delegate
;
@property
(
nonatomic
)
BUYProductVariant
*
variant
;
@property
(
nonatomic
,
readonly
)
BUYProductVariant
*
variant
;
@property
(
nonatomic
,
readonly
)
KWMColor
*
color
;
@property
(
nonatomic
,
readonly
)
NSInteger
count
;
-
(
void
)
setSelect
:(
BUYProductVariant
*
)
variant
color
:(
KWMColor
*
)
color
count
:(
NSInteger
)
count
;
-
(
void
)
setData
:(
BUYProduct
*
)
product
;
...
...
iCemarose/Class/UI/NewProduct/Cell/KWMFirstDetailView.m
View file @
af1531be
...
...
@@ -26,8 +26,6 @@
@property
(
nonatomic
,
weak
)
IBOutlet
UILabel
*
lbOldPrice
;
@property
(
nonatomic
,
weak
)
IBOutlet
UILabel
*
lbDetail
;
@property
(
nonatomic
,
weak
)
IBOutlet
UILabel
*
lbVariant
;
//单位label
...
...
@@ -49,6 +47,10 @@
-
(
IBAction
)
onClickBlandBtn
:(
id
)
sender
;
-
(
IBAction
)
onClickBuyNow
:(
id
)
sender
;
-
(
IBAction
)
onClickAddToShopCart
:(
id
)
sender
;
@end
@implementation
KWMFirstDetailView
...
...
@@ -139,6 +141,7 @@
if
(
product
==
nil
){
return
;
}
[
self
.
imageScrollView
.
subviews
makeObjectsPerformSelector
:
@selector
(
removeFromSuperview
)];
NSInteger
imageCount
=
product
.
imagesArray
==
nil
?
0
:
product
.
imagesArray
.
count
;
self
.
imageArr
=
[
NSMutableArray
array
];
CGFloat
w
=
UI_SCREEN_WIDTH
;
...
...
@@ -168,8 +171,6 @@
}
self
.
pageControl
.
numberOfPages
=
imageCount
;
self
.
pageControl
.
currentPage
=
0
;
// [self.pageControl setValue:[UIImage imageNamed:@"ic_page_2"] forKey:@"_currentPageImage"];
// [self.pageControl setValue:[UIImage imageNamed:@"ic_page_1"] forKey:@"_pageImage"];
self
.
pageControl
.
defaultImage
=
[
UIImage
imageNamed
:
@"ic_page_1"
];
self
.
pageControl
.
currentImage
=
[
UIImage
imageNamed
:
@"ic_page_2"
];
self
.
imageScrollView
.
contentSize
=
CGSizeMake
(
w
*
imageCount
,
0
);
...
...
@@ -184,11 +185,11 @@
[
self
.
btnBrand
setTitle
:
product
.
vendor
forState
:
UIControlStateNormal
];
self
.
lbName
.
text
=
product
.
title
;
BUYProductVariant
*
productVariant
=
product
.
variants
.
firstObject
;
NSAttributedString
*
detailAttr
=
[[
NSAttributedString
alloc
]
initWithData
:[
self
.
product
.
htmlDescription
dataUsingEncoding
:
NSUnicodeStringEncoding
]
options
:@{
NSDocumentTypeDocumentAttribute
:
NSHTMLTextDocumentType
}
documentAttributes
:
nil
error
:
nil
];
self
.
lbDetail
.
attributedText
=
detailAttr
;
self
.
lbPrice
.
text
=
[
KWMStringUtil
price
:
productVariant
.
price
];
// self.lbPrice.text = [KWMStringUtil price:productVariant.price];
self
.
lbPrice
.
text
=
productVariant
.
price
.
priceValueFormatted
;
if
(
productVariant
.
compareAtPrice
)
{
NSString
*
priceString
=
[
NSString
stringWithFormat
:
@"¥%@"
,[
KWMStringUtil
price
:
productVariant
.
compareAtPrice
]];
// NSString *priceString = [NSString stringWithFormat:@"¥%@",[KWMStringUtil price:productVariant.compareAtPrice]];
NSString
*
priceString
=
productVariant
.
compareAtPrice
.
priceValueFormatted
;
NSDictionary
*
attribtDic
=
@{
NSStrikethroughStyleAttributeName
:
[
NSNumber
numberWithInteger
:
NSUnderlineStyleSingle
]};
NSMutableAttributedString
*
attribtStr
=
[[
NSMutableAttributedString
alloc
]
initWithString
:
priceString
attributes
:
attribtDic
];
self
.
lbOldPrice
.
attributedText
=
attribtStr
;
...
...
@@ -248,24 +249,34 @@
-
(
void
)
onClickSizeBtn
:
(
id
)
sender
{
if
(
self
.
delegate
!=
nil
){
if
(
self
.
delegate
){
[
self
.
delegate
kwm_onClickSizeBtn
];
}
}
-
(
void
)
onClickBlandBtn
:
(
id
)
sender
{
if
(
self
.
delegate
!=
nil
){
if
(
self
.
delegate
){
[
self
.
delegate
kwm_goToBrandVC
];
}
}
-
(
void
)
setVariant
:
(
BUYProductVariant
*
)
variant
{
-
(
void
)
setSelect
:
(
BUYProductVariant
*
)
variant
color
:
(
KWMColor
*
)
color
count
:
(
NSInteger
)
count
{
_variant
=
variant
;
if
(
variant
){
self
.
lbVariant
.
text
=
variant
.
title
;
_color
=
color
;
_count
=
count
;
if
(
!
variant
){
self
.
lbVariant
.
text
=
@"选择尺码/颜色"
;
}
else
{
NSString
*
colorString
=
color
?[
NSString
stringWithFormat
:
@"%@ /"
,
color
.
title
]:
@""
;
self
.
lbVariant
.
text
=
[
NSString
stringWithFormat
:
@"已选择 %@ %@ / %ld"
,
colorString
,
variant
.
title
,
count
];
}
}
@end
iCemarose/Class/UI/NewProduct/Cell/KWMFirstDetailView.xib
View file @
af1531be
...
...
@@ -17,7 +17,6 @@
<outlet
property=
"lbName"
destination=
"SQm-rY-OyA"
id=
"Fux-pg-fca"
/>
<outlet
property=
"lbOldPrice"
destination=
"Mql-V1-hiE"
id=
"Sh1-Fz-sfU"
/>
<outlet
property=
"lbPrice"
destination=
"gpT-Sg-ghu"
id=
"FGd-AA-Yiv"
/>
<outlet
property=
"lbUnit"
destination=
"wfT-JC-g9d"
id=
"MSn-kd-aQ2"
/>
<outlet
property=
"lbVariant"
destination=
"o3P-oH-Xcb"
id=
"i3M-ae-jhH"
/>
<outlet
property=
"pageControl"
destination=
"M6v-TN-2WE"
id=
"QPe-TI-LdG"
/>
<outlet
property=
"vView"
destination=
"iN0-l3-epB"
id=
"TQD-W9-jEg"
/>
...
...
@@ -32,10 +31,10 @@
<rect
key=
"frame"
x=
"0.0"
y=
"0.0"
width=
"375"
height=
"667"
/>
<subviews>
<view
contentMode=
"scaleToFill"
translatesAutoresizingMaskIntoConstraints=
"NO"
id=
"lKe-L4-ROK"
userLabel=
"vTop"
>
<rect
key=
"frame"
x=
"0.0"
y=
"0.0"
width=
"375"
height=
"46
2
"
/>
<rect
key=
"frame"
x=
"0.0"
y=
"0.0"
width=
"375"
height=
"46
7
"
/>
<subviews>
<scrollView
clipsSubviews=
"YES"
multipleTouchEnabled=
"YES"
contentMode=
"scaleToFill"
showsHorizontalScrollIndicator=
"NO"
showsVerticalScrollIndicator=
"NO"
translatesAutoresizingMaskIntoConstraints=
"NO"
id=
"h8J-3U-wMB"
>
<rect
key=
"frame"
x=
"0.0"
y=
"4
3
.5"
width=
"375"
height=
"375"
/>
<rect
key=
"frame"
x=
"0.0"
y=
"4
6
.5"
width=
"375"
height=
"375"
/>
<constraints>
<constraint
firstAttribute=
"width"
secondItem=
"h8J-3U-wMB"
secondAttribute=
"height"
multiplier=
"1:1"
id=
"xTw-hD-9tf"
/>
</constraints>
...
...
@@ -50,13 +49,13 @@
</constraints>
</view>
<pageControl
opaque=
"NO"
contentMode=
"scaleToFill"
contentHorizontalAlignment=
"center"
contentVerticalAlignment=
"center"
numberOfPages=
"3"
translatesAutoresizingMaskIntoConstraints=
"NO"
id=
"M6v-TN-2WE"
customClass=
"KWMPageControl"
>
<rect
key=
"frame"
x=
"168"
y=
"46
2
"
width=
"39"
height=
"10"
/>
<rect
key=
"frame"
x=
"168"
y=
"46
7
"
width=
"39"
height=
"10"
/>
<constraints>
<constraint
firstAttribute=
"height"
constant=
"10"
id=
"n7t-N5-xKa"
/>
</constraints>
</pageControl>
<view
contentMode=
"scaleToFill"
translatesAutoresizingMaskIntoConstraints=
"NO"
id=
"Ymw-Cg-156"
userLabel=
"vBottom"
>
<rect
key=
"frame"
x=
"0.0"
y=
"47
2"
width=
"375"
height=
"195
"
/>
<rect
key=
"frame"
x=
"0.0"
y=
"47
7"
width=
"375"
height=
"190
"
/>
<subviews>
<view
contentMode=
"scaleToFill"
translatesAutoresizingMaskIntoConstraints=
"NO"
id=
"iJa-Oj-Sd2"
userLabel=
"商品数据"
>
<rect
key=
"frame"
x=
"0.0"
y=
"0.0"
width=
"375"
height=
"130"
/>
...
...
@@ -80,23 +79,17 @@
<color
key=
"textColor"
red=
"0.30588235294117649"
green=
"0.30588235294117649"
blue=
"0.30588235294117649"
alpha=
"1"
colorSpace=
"custom"
customColorSpace=
"sRGB"
/>
<nil
key=
"highlightedColor"
/>
</label>
<label
opaque=
"NO"
userInteractionEnabled=
"NO"
contentMode=
"left"
horizontalHuggingPriority=
"251"
verticalHuggingPriority=
"251"
text=
"¥"
textAlignment=
"natural"
lineBreakMode=
"tailTruncation"
baselineAdjustment=
"alignBaselines"
adjustsFontSizeToFit=
"NO"
translatesAutoresizingMaskIntoConstraints=
"NO"
id=
"wfT-JC-g9d"
>
<rect
key=
"frame"
x=
"21"
y=
"66"
width=
"9"
height=
"21"
/>
<fontDescription
key=
"fontDescription"
name=
"PingFangSC-Regular"
family=
"PingFang SC"
pointSize=
"15"
/>
<color
key=
"textColor"
red=
"0.94509803921568625"
green=
"0.5725490196078431"
blue=
"0.60392156862745094"
alpha=
"1"
colorSpace=
"calibratedRGB"
/>
<nil
key=
"highlightedColor"
/>
</label>
<label
opaque=
"NO"
userInteractionEnabled=
"NO"
contentMode=
"left"
horizontalHuggingPriority=
"251"
verticalHuggingPriority=
"251"
text=
"暂无"
textAlignment=
"natural"
lineBreakMode=
"tailTruncation"
baselineAdjustment=
"alignBaselines"
adjustsFontSizeToFit=
"NO"
translatesAutoresizingMaskIntoConstraints=
"NO"
id=
"gpT-Sg-ghu"
>
<rect
key=
"frame"
x=
"40"
y=
"62"
width=
"80.5"
height=
"28"
/>
<label
opaque=
"NO"
userInteractionEnabled=
"NO"
contentMode=
"left"
horizontalHuggingPriority=
"251"
verticalHuggingPriority=
"251"
text=
"暂无 "
textAlignment=
"natural"
lineBreakMode=
"tailTruncation"
baselineAdjustment=
"alignBaselines"
adjustsFontSizeToFit=
"NO"
translatesAutoresizingMaskIntoConstraints=
"NO"
id=
"gpT-Sg-ghu"
>
<rect
key=
"frame"
x=
"20"
y=
"62"
width=
"80"
height=
"28"
/>
<constraints>
<constraint
firstAttribute=
"width"
constant=
"80"
id=
"0Pv-kq-UND"
/>
<constraint
firstAttribute=
"width"
relation=
"greaterThanOrEqual"
constant=
"80"
id=
"0Pv-kq-UND"
/>
</constraints>
<fontDescription
key=
"fontDescription"
name=
"PingFangSC-Regular"
family=
"PingFang SC"
pointSize=
"20"
/>
<color
key=
"textColor"
red=
"0.94509803921568625"
green=
"0.5725490196078431"
blue=
"0.60392156862745094"
alpha=
"1"
colorSpace=
"calibratedRGB"
/>
<nil
key=
"highlightedColor"
/>
</label>
<label
opaque=
"NO"
userInteractionEnabled=
"NO"
contentMode=
"left"
horizontalHuggingPriority=
"251"
verticalHuggingPriority=
"251"
text=
"
¥
暂无"
textAlignment=
"natural"
lineBreakMode=
"tailTruncation"
baselineAdjustment=
"alignBaselines"
adjustsFontSizeToFit=
"NO"
translatesAutoresizingMaskIntoConstraints=
"NO"
id=
"Mql-V1-hiE"
>
<rect
key=
"frame"
x=
"1
20.5"
y=
"68.5"
width=
"51
.5"
height=
"18.5"
/>
<label
opaque=
"NO"
userInteractionEnabled=
"NO"
contentMode=
"left"
horizontalHuggingPriority=
"251"
verticalHuggingPriority=
"251"
text=
"暂无"
textAlignment=
"natural"
lineBreakMode=
"tailTruncation"
baselineAdjustment=
"alignBaselines"
adjustsFontSizeToFit=
"NO"
translatesAutoresizingMaskIntoConstraints=
"NO"
id=
"Mql-V1-hiE"
>
<rect
key=
"frame"
x=
"1
00"
y=
"68.5"
width=
"26
.5"
height=
"18.5"
/>
<fontDescription
key=
"fontDescription"
name=
"PingFangSC-Regular"
family=
"PingFang SC"
pointSize=
"13"
/>
<color
key=
"textColor"
red=
"0.30588235294117649"
green=
"0.30588235294117649"
blue=
"0.30588235294117649"
alpha=
"1"
colorSpace=
"calibratedRGB"
/>
<nil
key=
"highlightedColor"
/>
...
...
@@ -184,25 +177,24 @@
</view>
</subviews>
<constraints>
<constraint
firstItem=
"gpT-Sg-ghu"
firstAttribute=
"bottom"
secondItem=
"wfT-JC-g9d"
secondAttribute=
"bottom"
constant=
"3"
id=
"0gt-hJ-gW7"
/>
<constraint
firstItem=
"Mql-V1-hiE"
firstAttribute=
"leading"
secondItem=
"gpT-Sg-ghu"
secondAttribute=
"trailing"
id=
"2kJ-k6-7uE"
/>
<constraint
firstItem=
"efc-dz-O7V"
firstAttribute=
"leading"
secondItem=
"yYc-Lx-XMx"
secondAttribute=
"trailing"
id=
"ApX-Ec-ekY"
/>
<constraint
firstAttribute=
"trailing"
secondItem=
"s6N-a3-C4Z"
secondAttribute=
"trailing"
constant=
"21"
id=
"BH6-4A-Psp"
/>
<constraint
firstItem=
"KO2-yq-cZe"
firstAttribute=
"top"
secondItem=
"efc-dz-O7V"
secondAttribute=
"top"
id=
"D1C-JX-jqh"
/>
<constraint
firstItem=
"yYc-Lx-XMx"
firstAttribute=
"top"
secondItem=
"gpT-Sg-ghu"
secondAttribute=
"bottom"
constant=
"8"
id=
"DMl-f6-dk5"
/>
<constraint
firstItem=
"Mql-V1-hiE"
firstAttribute=
"leading"
secondItem=
"gpT-Sg-ghu"
secondAttribute=
"trailing"
id=
"Dqx-DG-mtd"
/>
<constraint
firstItem=
"efc-dz-O7V"
firstAttribute=
"top"
secondItem=
"yYc-Lx-XMx"
secondAttribute=
"top"
id=
"LXH-4U-H7T"
/>
<constraint
firstItem=
"
Mql-V1-hiE"
firstAttribute=
"bottom"
secondItem=
"wfT-JC-g9d"
secondAttribute=
"bottom"
id=
"LwR-CA-mq2
"
/>
<constraint
firstItem=
"
gpT-Sg-ghu"
firstAttribute=
"leading"
secondItem=
"iJa-Oj-Sd2"
secondAttribute=
"leading"
constant=
"20"
id=
"Qed-jX-eBU
"
/>
<constraint
firstItem=
"s6N-a3-C4Z"
firstAttribute=
"leading"
secondItem=
"iJa-Oj-Sd2"
secondAttribute=
"leading"
constant=
"21"
id=
"Qm4-Ii-IA5"
/>
<constraint
firstItem=
"SQm-rY-OyA"
firstAttribute=
"top"
secondItem=
"s6N-a3-C4Z"
secondAttribute=
"bottom"
constant=
"4.5"
id=
"TVX-ig-tsH"
/>
<constraint
firstItem=
"s6N-a3-C4Z"
firstAttribute=
"top"
secondItem=
"iJa-Oj-Sd2"
secondAttribute=
"top"
id=
"YxU-Rv-XEv"
/>
<constraint
firstItem=
"KO2-yq-cZe"
firstAttribute=
"leading"
secondItem=
"efc-dz-O7V"
secondAttribute=
"trailing"
id=
"ZGb-XR-j4Y"
/>
<constraint
firstItem=
"wfT-JC-g9d"
firstAttribute=
"leading"
secondItem=
"iJa-Oj-Sd2"
secondAttribute=
"leading"
constant=
"21"
id=
"ZU3-uY-xmf"
/>
<constraint
firstAttribute=
"trailing"
secondItem=
"SQm-rY-OyA"
secondAttribute=
"trailing"
constant=
"21"
id=
"dX6-4X-Blu"
/>
<constraint
firstItem=
"wfT-JC-g9d"
firstAttribute=
"top"
secondItem=
"SQm-rY-OyA"
secondAttribute=
"bottom"
constant=
"7.5"
id=
"gcI-jU-lhJ"
/>
<constraint
firstItem=
"Mql-V1-hiE"
firstAttribute=
"top"
secondItem=
"SQm-rY-OyA"
secondAttribute=
"bottom"
constant=
"10"
id=
"kEt-gI-pxw"
/>
<constraint
firstItem=
"gpT-Sg-ghu"
firstAttribute=
"top"
secondItem=
"SQm-rY-OyA"
secondAttribute=
"bottom"
constant=
"3.5"
id=
"lOo-gm-aCL"
/>
<constraint
firstItem=
"yYc-Lx-XMx"
firstAttribute=
"leading"
secondItem=
"iJa-Oj-Sd2"
secondAttribute=
"leading"
constant=
"21"
id=
"lTQ-qi-GT9"
/>
<constraint
firstAttribute=
"height"
constant=
"130"
id=
"nLX-8H-mni"
/>
<constraint
firstItem=
"SQm-rY-OyA"
firstAttribute=
"leading"
secondItem=
"iJa-Oj-Sd2"
secondAttribute=
"leading"
constant=
"21"
id=
"njb-yV-RRh"
/>
<constraint
firstItem=
"gpT-Sg-ghu"
firstAttribute=
"leading"
secondItem=
"wfT-JC-g9d"
secondAttribute=
"trailing"
constant=
"10"
id=
"o9j-pp-GRZ"
/>
</constraints>
</view>
<view
contentMode=
"scaleToFill"
translatesAutoresizingMaskIntoConstraints=
"NO"
id=
"wgu-cH-TXa"
userLabel=
"选择尺码/颜色"
customClass=
"KWMItemView"
>
...
...
@@ -222,7 +214,7 @@
<nil
key=
"highlightedColor"
/>
</label>
<view
contentMode=
"scaleToFill"
translatesAutoresizingMaskIntoConstraints=
"NO"
id=
"Eqb-wS-Pj4"
userLabel=
"line"
>
<rect
key=
"frame"
x=
"
0.0"
y=
"49"
width=
"37
5"
height=
"1"
/>
<rect
key=
"frame"
x=
"
20"
y=
"49"
width=
"35
5"
height=
"1"
/>
<color
key=
"backgroundColor"
red=
"0.84705882349999995"
green=
"0.85882352939999995"
blue=
"0.87058823529999996"
alpha=
"1"
colorSpace=
"calibratedRGB"
/>
<constraints>
<constraint
firstAttribute=
"height"
constant=
"1"
id=
"PfY-sI-qsS"
/>
...
...
@@ -242,7 +234,7 @@
<constraint
firstItem=
"JBu-QP-lhJ"
firstAttribute=
"leading"
secondItem=
"wgu-cH-TXa"
secondAttribute=
"leading"
constant=
"21"
id=
"MPS-lz-BYC"
/>
<constraint
firstAttribute=
"bottom"
secondItem=
"Eqb-wS-Pj4"
secondAttribute=
"bottom"
id=
"Ndv-Cn-fC4"
/>
<constraint
firstAttribute=
"trailing"
secondItem=
"rd9-oQ-6Yd"
secondAttribute=
"trailing"
constant=
"20"
id=
"dD7-bY-9ky"
/>
<constraint
firstItem=
"Eqb-wS-Pj4"
firstAttribute=
"leading"
secondItem=
"wgu-cH-TXa"
secondAttribute=
"leading"
id=
"eDd-wd-YoB"
/>
<constraint
firstItem=
"Eqb-wS-Pj4"
firstAttribute=
"leading"
secondItem=
"wgu-cH-TXa"
secondAttribute=
"leading"
constant=
"20"
id=
"eDd-wd-YoB"
/>
<constraint
firstItem=
"o3P-oH-Xcb"
firstAttribute=
"leading"
secondItem=
"wgu-cH-TXa"
secondAttribute=
"leading"
constant=
"21"
id=
"eYd-CZ-fBx"
/>
<constraint
firstItem=
"rd9-oQ-6Yd"
firstAttribute=
"centerY"
secondItem=
"wgu-cH-TXa"
secondAttribute=
"centerY"
id=
"ikC-7d-X6D"
/>
<constraint
firstAttribute=
"trailing"
secondItem=
"JBu-QP-lhJ"
secondAttribute=
"trailing"
id=
"mGw-bx-abg"
/>
...
...
@@ -254,26 +246,16 @@
<outletCollection
property=
"gestureRecognizers"
destination=
"Bn3-BY-NZm"
appends=
"YES"
id=
"5YW-Qp-ioO"
/>
</connections>
</view>
<view
contentMode=
"scaleToFill"
translatesAutoresizingMaskIntoConstraints=
"NO"
id=
"zmi-gQ-S6i"
>
<rect
key=
"frame"
x=
"0.0"
y=
"190"
width=
"375"
height=
"5"
/>
<color
key=
"backgroundColor"
red=
"0.95294117647058818"
green=
"0.95686274509803915"
blue=
"0.96078431372549022"
alpha=
"1"
colorSpace=
"calibratedRGB"
/>
<constraints>
<constraint
firstAttribute=
"height"
constant=
"5"
id=
"PpS-Jc-blA"
/>
</constraints>
</view>
</subviews>
<color
key=
"backgroundColor"
white=
"1"
alpha=
"1"
colorSpace=
"calibratedWhite"
/>
<constraints>
<constraint
firstAttribute=
"trailing"
secondItem=
"wgu-cH-TXa"
secondAttribute=
"trailing"
id=
"1BE-r2-etn"
/>
<constraint
firstItem=
"wgu-cH-TXa"
firstAttribute=
"top"
secondItem=
"iJa-Oj-Sd2"
secondAttribute=
"bottom"
constant=
"10"
id=
"3E1-qY-lsE"
/>
<constraint
firstItem=
"zmi-gQ-S6i"
firstAttribute=
"leading"
secondItem=
"Ymw-Cg-156"
secondAttribute=
"leading"
id=
"4Id-i3-1mG"
/>
<constraint
firstItem=
"zmi-gQ-S6i"
firstAttribute=
"top"
secondItem=
"wgu-cH-TXa"
secondAttribute=
"bottom"
id=
"4Ld-Pc-ZRB"
/>
<constraint
firstAttribute=
"trailing"
secondItem=
"iJa-Oj-Sd2"
secondAttribute=
"trailing"
id=
"8a6-sG-pwj"
/>
<constraint
firstItem=
"iJa-Oj-Sd2"
firstAttribute=
"top"
secondItem=
"Ymw-Cg-156"
secondAttribute=
"top"
id=
"Vl5-q8-AzT"
/>
<constraint
firstAttribute=
"trailing"
secondItem=
"zmi-gQ-S6i"
secondAttribute=
"trailing"
id=
"YBd-mU-bgi"
/>
<constraint
firstItem=
"iJa-Oj-Sd2"
firstAttribute=
"leading"
secondItem=
"Ymw-Cg-156"
secondAttribute=
"leading"
id=
"hhQ-sM-yEW"
/>
<constraint
firstItem=
"wgu-cH-TXa"
firstAttribute=
"leading"
secondItem=
"Ymw-Cg-156"
secondAttribute=
"leading"
id=
"oIc-Ag-UZg"
/>
<constraint
firstAttribute=
"bottom"
secondItem=
"
zmi-gQ-S6i"
secondAttribute=
"bottom"
id=
"pzL-8F-jyX
"
/>
<constraint
firstAttribute=
"bottom"
secondItem=
"
wgu-cH-TXa"
secondAttribute=
"bottom"
id=
"uTa-HP-Rfa
"
/>
</constraints>
</view>
</subviews>
...
...
iCemarose/Class/UI/NewProduct/Cell/KWM
Thir
dDetailView.h
→
iCemarose/Class/UI/NewProduct/Cell/KWM
Mi
dDetailView.h
View file @
af1531be
//
// KWM
Thir
dDetailView.h
// KWM
Mi
dDetailView.h
// iCemarose
//
// Created by HouWeiBin on 2017/
6/2
3.
// Created by HouWeiBin on 2017/
7/1
3.
// Copyright © 2017年 kollway. All rights reserved.
//
#import <UIKit/UIKit.h>
#import <Buy/Buy.h>
@interface
KWMThirdDetailView
:
UIView
@interface
KWMMidDetailView
:
UIView
@property
(
nonatomic
,
weak
)
IBOutlet
UIView
*
vView
;
@property
(
nonatomic
,
weak
)
BUYProduct
*
product
;
@end
iCemarose/Class/UI/NewProduct/Cell/KWM
Thir
dDetailView.m
→
iCemarose/Class/UI/NewProduct/Cell/KWM
Mi
dDetailView.m
View file @
af1531be
//
// KWM
Thir
dDetailView.m
// KWM
Mi
dDetailView.m
// iCemarose
//
// Created by HouWeiBin on 2017/
6/2
3.
// Created by HouWeiBin on 2017/
7/1
3.
// Copyright © 2017年 kollway. All rights reserved.
//
#import "KWMThirdDetailView.h"
@interface
KWMThirdDetailView
()
@property
(
weak
,
nonatomic
)
IBOutlet
UIView
*
vView
;
#import "KWMMidDetailView.h"
#import "KWMStringUtil.h"
@interface
KWMMidDetailView
()
@property
(
nonatomic
,
weak
)
IBOutlet
UILabel
*
lbDetail
;
@end
@implementation
KWMThirdDetailView
@implementation
KWMMidDetailView
-
(
id
)
initWithFrame
:(
CGRect
)
frame
{
self
=
[
super
initWithFrame
:
frame
];
if
(
self
){
[
self
initView
];
-
(
id
)
init
{
if
(
self
=
[
super
init
]){
[
self
addView
];
}
return
self
;
}
-
(
instancetype
)
initWithCoder
:(
NSCoder
*
)
aDecoder
{
-
(
id
)
initWithCoder
:
(
NSCoder
*
)
aDecoder
{
self
=
[
super
initWithCoder
:
aDecoder
];
if
(
self
)
{
[
self
initView
];
[
self
addView
];
}
return
self
;
}
-
(
instancetype
)
initWithFrame
:
(
CGRect
)
frame
{
if
(
self
=
[
super
initWithFrame
:
frame
])
{
[
self
addView
];
}
return
self
;
}
...
...
@@ -36,12 +42,23 @@
[
super
awakeFromNib
];
}
-
(
void
)
init
View
{
-
(
void
)
add
View
{
[[
NSBundle
mainBundle
]
loadNibNamed
:
NSStringFromClass
([
self
class
])
owner
:
self
options
:
nil
];
self
.
vView
.
frame
=
CGRectMake
(
0
,
0
,
self
.
frame
.
size
.
width
,
self
.
frame
.
size
.
height
);
[
self
addSubview
:
self
.
vView
];
}
-
(
void
)
setProduct
:
(
BUYProduct
*
)
product
{
_product
=
product
;
if
(
product
&&
!
[
KWMStringUtil
isEmpty
:
product
.
stringDescription
]){
self
.
lbDetail
.
text
=
product
.
stringDescription
;
}
else
{
self
.
lbDetail
.
text
=
@"暂无商品描述"
;
}
}
@end
iCemarose/Class/UI/NewProduct/Cell/KWMMidDetailView.xib
0 → 100644
View file @
af1531be
<?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=
"KWMMidDetailView"
>
<connections>
<outlet
property=
"lbDetail"
destination=
"16V-pg-zWo"
id=
"GaV-86-xP9"
/>
<outlet
property=
"vView"
destination=
"iN0-l3-epB"
id=
"P0V-Yf-qbm"
/>
</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=
"86.5"
/>
<autoresizingMask
key=
"autoresizingMask"
widthSizable=
"YES"
heightSizable=
"YES"
/>
<subviews>
<view
contentMode=
"scaleToFill"
translatesAutoresizingMaskIntoConstraints=
"NO"
id=
"0zT-PT-urZ"
userLabel=
"商品详情"
>
<rect
key=
"frame"
x=
"0.0"
y=
"0.0"
width=
"375"
height=
"86.5"
/>
<subviews>
<label
opaque=
"NO"
userInteractionEnabled=
"NO"
contentMode=
"left"
horizontalHuggingPriority=
"251"
verticalHuggingPriority=
"251"
text=
"商品详情"
textAlignment=
"natural"
lineBreakMode=
"tailTruncation"
baselineAdjustment=
"alignBaselines"
adjustsFontSizeToFit=
"NO"
translatesAutoresizingMaskIntoConstraints=
"NO"
id=
"pqF-X5-Xhf"
>
<rect
key=
"frame"
x=
"20"
y=
"20"
width=
"56"
height=
"20"
/>
<fontDescription
key=
"fontDescription"
name=
"PingFangSC-Light"
family=
"PingFang SC"
pointSize=
"14"
/>
<color
key=
"textColor"
red=
"0.1529411765"
green=
"0.14901960780000001"
blue=
"0.21176470589999999"
alpha=
"1"
colorSpace=
"calibratedRGB"
/>
<nil
key=
"highlightedColor"
/>
</label>
<label
opaque=
"NO"
userInteractionEnabled=
"NO"
contentMode=
"left"
horizontalHuggingPriority=
"251"
verticalHuggingPriority=
"251"
text=
"暂无商品描述"
textAlignment=
"natural"
lineBreakMode=
"tailTruncation"
numberOfLines=
"0"
baselineAdjustment=
"alignBaselines"
adjustsFontSizeToFit=
"NO"
translatesAutoresizingMaskIntoConstraints=
"NO"
id=
"16V-pg-zWo"
>
<rect
key=
"frame"
x=
"20"
y=
"55"
width=
"335"
height=
"15.5"
/>
<fontDescription
key=
"fontDescription"
name=
"PingFangSC-Light"
family=
"PingFang SC"
pointSize=
"11"
/>
<color
key=
"textColor"
red=
"0.1529411765"
green=
"0.14901960780000001"
blue=
"0.21176470589999999"
alpha=
"1"
colorSpace=
"calibratedRGB"
/>
<nil
key=
"highlightedColor"
/>
</label>
<view
contentMode=
"scaleToFill"
translatesAutoresizingMaskIntoConstraints=
"NO"
id=
"XNJ-x6-2qP"
userLabel=
"line"
>
<rect
key=
"frame"
x=
"0.0"
y=
"80.5"
width=
"375"
height=
"1"
/>
<color
key=
"backgroundColor"
red=
"0.84705882349999995"
green=
"0.85882352939999995"
blue=
"0.87058823529999996"
alpha=
"1"
colorSpace=
"calibratedRGB"
/>
<constraints>
<constraint
firstAttribute=
"height"
constant=
"1"
id=
"NJy-G1-cyA"
/>
</constraints>
</view>
<view
contentMode=
"scaleToFill"
translatesAutoresizingMaskIntoConstraints=
"NO"
id=
"PrI-2Q-iZo"
>
<rect
key=
"frame"
x=
"0.0"
y=
"81.5"
width=
"375"
height=
"5"
/>
<color
key=
"backgroundColor"
red=
"0.95294117647058818"
green=
"0.95686274509803915"
blue=
"0.96078431372549022"
alpha=
"1"
colorSpace=
"calibratedRGB"
/>
<constraints>
<constraint
firstAttribute=
"height"
constant=
"5"
id=
"sZO-dU-qbA"
/>
</constraints>
</view>
</subviews>
<color
key=
"backgroundColor"
white=
"1"
alpha=
"1"
colorSpace=
"calibratedWhite"
/>
<constraints>
<constraint
firstItem=
"XNJ-x6-2qP"
firstAttribute=
"leading"
secondItem=
"0zT-PT-urZ"
secondAttribute=
"leading"
id=
"8BE-D2-yFW"
/>
<constraint
firstItem=
"16V-pg-zWo"
firstAttribute=
"leading"
secondItem=
"0zT-PT-urZ"
secondAttribute=
"leading"
constant=
"20"
id=
"9FX-pD-wNv"
/>
<constraint
firstAttribute=
"trailing"
secondItem=
"PrI-2Q-iZo"
secondAttribute=
"trailing"
id=
"D3a-eK-daj"
/>
<constraint
firstItem=
"pqF-X5-Xhf"
firstAttribute=
"leading"
secondItem=
"0zT-PT-urZ"
secondAttribute=
"leading"
constant=
"20"
id=
"EzD-gc-lvx"
/>
<constraint
firstItem=
"pqF-X5-Xhf"
firstAttribute=
"top"
secondItem=
"0zT-PT-urZ"
secondAttribute=
"top"
constant=
"20"
id=
"LEK-UP-dRE"
/>
<constraint
firstItem=
"PrI-2Q-iZo"
firstAttribute=
"top"
secondItem=
"XNJ-x6-2qP"
secondAttribute=
"bottom"
id=
"NNY-sX-Xqu"
/>
<constraint
firstItem=
"16V-pg-zWo"
firstAttribute=
"top"
secondItem=
"pqF-X5-Xhf"
secondAttribute=
"bottom"
constant=
"15"
id=
"OZP-o7-VsQ"
/>
<constraint
firstItem=
"XNJ-x6-2qP"
firstAttribute=
"leading"
secondItem=
"0zT-PT-urZ"
secondAttribute=
"leading"
id=
"PcD-dE-uqp"
/>
<constraint
firstAttribute=
"trailing"
secondItem=
"XNJ-x6-2qP"
secondAttribute=
"trailing"
id=
"QPz-Pw-Kko"
/>
<constraint
firstAttribute=
"bottom"
secondItem=
"PrI-2Q-iZo"
secondAttribute=
"bottom"
id=
"YMF-oS-bPV"
/>
<constraint
firstAttribute=
"trailing"
secondItem=
"XNJ-x6-2qP"
secondAttribute=
"trailing"
id=
"gfW-re-x8M"
/>
<constraint
firstItem=
"PrI-2Q-iZo"
firstAttribute=
"leading"
secondItem=
"0zT-PT-urZ"
secondAttribute=
"leading"
id=
"kX3-oP-46q"
/>
<constraint
firstAttribute=
"trailing"
secondItem=
"16V-pg-zWo"
secondAttribute=
"trailing"
constant=
"20"
id=
"nfa-gQ-E5a"
/>
</constraints>
</view>
</subviews>
<color
key=
"backgroundColor"
red=
"1"
green=
"1"
blue=
"1"
alpha=
"1"
colorSpace=
"custom"
customColorSpace=
"sRGB"
/>
<constraints>
<constraint
firstItem=
"0zT-PT-urZ"
firstAttribute=
"top"
secondItem=
"iN0-l3-epB"
secondAttribute=
"top"
id=
"BdH-DG-45e"
/>
<constraint
firstAttribute=
"trailing"
secondItem=
"0zT-PT-urZ"
secondAttribute=
"trailing"
id=
"Sff-qk-tGd"
/>
<constraint
firstItem=
"0zT-PT-urZ"
firstAttribute=
"leading"
secondItem=
"iN0-l3-epB"
secondAttribute=
"leading"
id=
"g9K-fG-ixC"
/>
<constraint
firstAttribute=
"bottom"
secondItem=
"0zT-PT-urZ"
secondAttribute=
"bottom"
id=
"iyD-4z-nH4"
/>
</constraints>
<freeformSimulatedSizeMetrics
key=
"simulatedDestinationMetrics"
/>
</view>
</objects>
</document>
iCemarose/Class/UI/NewProduct/Cell/KWMProductColorCell.m
View file @
af1531be
...
...
@@ -42,7 +42,7 @@
-
(
void
)
setData
:
(
KWMColor
*
)
data
{
_data
=
data
;
if
(
data
){
BUYProduct
*
product
=
data
.
prod
cu
t
;
BUYProduct
*
product
=
data
.
prod
uc
t
;
NSString
*
imageUrl
=
[
KWMImageUtil
getProductImageUrl
:
product
ImageSize
:
SmallImage
];
NSURL
*
imageURL
=
[
NSURL
URLWithString
:
imageUrl
];
[
self
.
ivColor
sd_setImageWithURL
:
imageURL
placeholderImage
:[
UIImage
imageNamed
:
@"ic_loading"
]];
...
...
iCemarose/Class/UI/NewProduct/Cell/KWMProductSizeCell.xib
View file @
af1531be
...
...
@@ -6,7 +6,6 @@
<dependencies>
<deployment
identifier=
"iOS"
/>
<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>
<objects>
...
...
@@ -36,50 +35,39 @@
<rect
key=
"frame"
x=
"0.0"
y=
"0.0"
width=
"91"
height=
"36"
/>
<subviews>
<view
contentMode=
"scaleToFill"
translatesAutoresizingMaskIntoConstraints=
"NO"
id=
"cGu-OY-P4R"
userLabel=
"size"
>
<rect
key=
"frame"
x=
"0.0"
y=
"0.0"
width=
"91"
height=
"
18
"
/>
<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=
"3A"
textAlignment=
"center"
lineBreakMode=
"tailTruncation"
baselineAdjustment=
"alignBaselines"
adjustsFontSizeToFit=
"NO"
translatesAutoresizingMaskIntoConstraints=
"NO"
id=
"whv-2v-7Jq"
>
<rect
key=
"frame"
x=
"0.0"
y=
"0.0"
width=
"91"
height=
"
18
.5"
/>
<rect
key=
"frame"
x=
"0.0"
y=
"0.0"
width=
"91"
height=
"
36
.5"
/>
<fontDescription
key=
"fontDescription"
name=
"PingFangSC-Regular"
family=
"PingFang SC"
pointSize=
"13"
/>
<color
key=
"textColor"
red=
"0.22352941176470587"
green=
"0.22352941176470587"
blue=
"0.22352941176470587"
alpha=
"1"
colorSpace=
"calibratedRGB"
/>
<nil
key=
"highlightedColor"
/>
</label>
<view
contentMode=
"scaleToFill"
translatesAutoresizingMaskIntoConstraints=
"NO"
id=
"dZq-jJ-iEe"
userLabel=
"line"
>
<rect
key=
"frame"
x=
"22.5"
y=
"8.5"
width=
"45.5"
height=
"1"
/>
<color
key=
"backgroundColor"
red=
"0.94509803921568625"
green=
"0.50980392156862742"
blue=
"0.54117647058823526"
alpha=
"1"
colorSpace=
"calibratedRGB"
/>
<imageView
userInteractionEnabled=
"NO"
contentMode=
"scaleToFill"
horizontalHuggingPriority=
"251"
verticalHuggingPriority=
"251"
image=
"ic_sell_out"
translatesAutoresizingMaskIntoConstraints=
"NO"
id=
"TdD-fg-gGm"
>
<rect
key=
"frame"
x=
"32"
y=
"10"
width=
"26"
height=
"15"
/>
<constraints>
<constraint
firstAttribute=
"height"
constant=
"1"
id=
"fKL-jv-avn"
/>
<constraint
firstAttribute=
"width"
constant=
"26"
id=
"Sem-we-wai"
/>
<constraint
firstAttribute=
"height"
constant=
"15"
id=
"ldd-Tb-DUK"
/>
</constraints>
</
v
iew>
</
imageV
iew>
</subviews>
<color
key=
"backgroundColor"
white=
"1"
alpha=
"1"
colorSpace=
"calibratedWhite"
/>
<constraints>
<constraint
firstItem=
"TdD-fg-gGm"
firstAttribute=
"centerY"
secondItem=
"cGu-OY-P4R"
secondAttribute=
"centerY"
id=
"9YG-wq-dD4"
/>
<constraint
firstItem=
"TdD-fg-gGm"
firstAttribute=
"centerX"
secondItem=
"cGu-OY-P4R"
secondAttribute=
"centerX"
id=
"Dba-69-acf"
/>
<constraint
firstItem=
"whv-2v-7Jq"
firstAttribute=
"top"
secondItem=
"cGu-OY-P4R"
secondAttribute=
"top"
id=
"F83-Wt-SEu"
/>
<constraint
firstItem=
"whv-2v-7Jq"
firstAttribute=
"leading"
secondItem=
"cGu-OY-P4R"
secondAttribute=
"leading"
id=
"Jyt-in-reE"
/>
<constraint
firstItem=
"dZq-jJ-iEe"
firstAttribute=
"centerX"
secondItem=
"cGu-OY-P4R"
secondAttribute=
"centerX"
id=
"bqk-63-7jb"
/>
<constraint
firstAttribute=
"trailing"
secondItem=
"whv-2v-7Jq"
secondAttribute=
"trailing"
id=
"diD-GC-atf"
/>
<constraint
firstAttribute=
"bottom"
secondItem=
"whv-2v-7Jq"
secondAttribute=
"bottom"
id=
"maJ-HX-Qwr"
/>
<constraint
firstItem=
"dZq-jJ-iEe"
firstAttribute=
"width"
secondItem=
"cGu-OY-P4R"
secondAttribute=
"width"
multiplier=
"0.5"
id=
"n2f-kj-OSA"
/>
<constraint
firstItem=
"dZq-jJ-iEe"
firstAttribute=
"centerY"
secondItem=
"cGu-OY-P4R"
secondAttribute=
"centerY"
id=
"rYK-at-zcZ"
/>
</constraints>
</view>
<label
opaque=
"NO"
userInteractionEnabled=
"NO"
contentMode=
"left"
horizontalHuggingPriority=
"251"
verticalHuggingPriority=
"251"
text=
"到货提醒"
textAlignment=
"center"
lineBreakMode=
"tailTruncation"
baselineAdjustment=
"alignBaselines"
adjustsFontSizeToFit=
"NO"
translatesAutoresizingMaskIntoConstraints=
"NO"
id=
"a1x-nK-a5r"
>
<rect
key=
"frame"
x=
"0.0"
y=
"18"
width=
"91"
height=
"18"
/>
<fontDescription
key=
"fontDescription"
name=
"PingFangSC-Regular"
family=
"PingFang SC"
pointSize=
"10"
/>
<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=
"cGu-OY-P4R"
firstAttribute=
"leading"
secondItem=
"0cT-rD-xfN"
secondAttribute=
"leading"
id=
"6OR-DW-ehn"
/>
<constraint
firstAttribute=
"trailing"
secondItem=
"cGu-OY-P4R"
secondAttribute=
"trailing"
id=
"9Xe-7j-CVp"
/>
<constraint
firstItem=
"cGu-OY-P4R"
firstAttribute=
"height"
secondItem=
"0cT-rD-xfN"
secondAttribute=
"height"
multiplier=
"0.5"
id=
"P32-P7-2sr"
/>
<constraint
firstAttribute=
"trailing"
secondItem=
"a1x-nK-a5r"
secondAttribute=
"trailing"
id=
"Thr-BQ-S1n"
/>
<constraint
firstAttribute=
"bottom"
secondItem=
"cGu-OY-P4R"
secondAttribute=
"bottom"
id=
"MR2-a7-hda"
/>
<constraint
firstItem=
"cGu-OY-P4R"
firstAttribute=
"top"
secondItem=
"0cT-rD-xfN"
secondAttribute=
"top"
id=
"UlT-El-Qs2"
/>
<constraint
firstAttribute=
"bottom"
secondItem=
"a1x-nK-a5r"
secondAttribute=
"bottom"
id=
"WfI-SI-Zh4"
/>
<constraint
firstItem=
"a1x-nK-a5r"
firstAttribute=
"top"
secondItem=
"cGu-OY-P4R"
secondAttribute=
"bottom"
id=
"uvz-SI-Sqb"
/>
<constraint
firstItem=
"a1x-nK-a5r"
firstAttribute=
"leading"
secondItem=
"0cT-rD-xfN"
secondAttribute=
"leading"
id=
"vEN-Ay-DEB"
/>
</constraints>
</view>
</subviews>
...
...
@@ -120,4 +108,7 @@
</connections>
</collectionViewCell>
</objects>
<resources>
<image
name=
"ic_sell_out"
width=
"26"
height=
"16"
/>
</resources>
</document>
iCemarose/Class/UI/NewProduct/Cell/KWMSecondDetailView.h
View file @
af1531be
...
...
@@ -15,6 +15,7 @@
-
(
void
)
kwm_clickCollectionCell
:
(
BUYProduct
*
)
product
;
@optional
-
(
void
)
kwm_loadNewPage
:
(
BOOL
)
isSameBrand
;
@end
...
...
iCemarose/Class/UI/NewProduct/Cell/KWMThirdDetailView.xib
deleted
100644 → 0
View file @
97e77983
<?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=
"KWMThirdDetailView"
>
<connections>
<outlet
property=
"vView"
destination=
"iN0-l3-epB"
id=
"jbE-sN-LZF"
/>
</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=
"530"
/>
<autoresizingMask
key=
"autoresizingMask"
widthSizable=
"YES"
heightSizable=
"YES"
/>
<subviews>
<view
contentMode=
"scaleToFill"
translatesAutoresizingMaskIntoConstraints=
"NO"
id=
"phf-Yh-r1z"
>
<rect
key=
"frame"
x=
"0.0"
y=
"0.0"
width=
"375"
height=
"530"
/>
<subviews>
<imageView
userInteractionEnabled=
"NO"
contentMode=
"TopLeft"
horizontalHuggingPriority=
"251"
verticalHuggingPriority=
"251"
image=
"test_product_detail"
translatesAutoresizingMaskIntoConstraints=
"NO"
id=
"uQ5-LY-iWo"
>
<rect
key=
"frame"
x=
"0.0"
y=
"20"
width=
"375"
height=
"510"
/>
</imageView>
<view
contentMode=
"scaleToFill"
translatesAutoresizingMaskIntoConstraints=
"NO"
id=
"wfB-x3-Yg3"
>
<rect
key=
"frame"
x=
"0.0"
y=
"0.0"
width=
"375"
height=
"40"
/>
<subviews>
<view
contentMode=
"scaleToFill"
translatesAutoresizingMaskIntoConstraints=
"NO"
id=
"cRM-ik-mZ1"
userLabel=
"vLine"
>
<rect
key=
"frame"
x=
"50"
y=
"19"
width=
"275"
height=
"1"
/>
<color
key=
"backgroundColor"
white=
"0.0"
alpha=
"1"
colorSpace=
"calibratedWhite"
/>
<constraints>
<constraint
firstAttribute=
"height"
constant=
"1"
id=
"lEz-sk-YTa"
/>
</constraints>
</view>
<label
opaque=
"NO"
userInteractionEnabled=
"NO"
contentMode=
"left"
horizontalHuggingPriority=
"251"
verticalHuggingPriority=
"251"
text=
"商品详情"
textAlignment=
"center"
lineBreakMode=
"tailTruncation"
numberOfLines=
"2"
baselineAdjustment=
"alignBaselines"
adjustsFontSizeToFit=
"NO"
translatesAutoresizingMaskIntoConstraints=
"NO"
id=
"aOi-sB-YXp"
>
<rect
key=
"frame"
x=
"112"
y=
"10"
width=
"150"
height=
"20"
/>
<color
key=
"backgroundColor"
red=
"0.99607843139999996"
green=
"0.99607843139999996"
blue=
"0.99607843139999996"
alpha=
"1"
colorSpace=
"custom"
customColorSpace=
"sRGB"
/>
<constraints>
<constraint
firstAttribute=
"width"
constant=
"150"
id=
"LGk-89-dnF"
/>
<constraint
firstAttribute=
"height"
constant=
"20"
id=
"nGt-cs-4Ts"
/>
</constraints>
<fontDescription
key=
"fontDescription"
name=
"PingFangSC-Light"
family=
"PingFang SC"
pointSize=
"14"
/>
<color
key=
"textColor"
red=
"0.25863381410000003"
green=
"0.25863381410000003"
blue=
"0.25863381410000003"
alpha=
"1"
colorSpace=
"calibratedRGB"
/>
<nil
key=
"highlightedColor"
/>
<variation
key=
"default"
>
<mask
key=
"constraints"
>
<exclude
reference=
"nGt-cs-4Ts"
/>
</mask>
</variation>
</label>
</subviews>
<color
key=
"backgroundColor"
white=
"1"
alpha=
"1"
colorSpace=
"calibratedWhite"
/>
<constraints>
<constraint
firstAttribute=
"height"
constant=
"40"
id=
"4wL-Lc-vYc"
/>
<constraint
firstItem=
"aOi-sB-YXp"
firstAttribute=
"centerX"
secondItem=
"wfB-x3-Yg3"
secondAttribute=
"centerX"
id=
"6si-bK-rmk"
/>
<constraint
firstItem=
"cRM-ik-mZ1"
firstAttribute=
"leading"
secondItem=
"wfB-x3-Yg3"
secondAttribute=
"leading"
constant=
"50"
id=
"MYj-rD-ToW"
/>
<constraint
firstAttribute=
"trailing"
secondItem=
"cRM-ik-mZ1"
secondAttribute=
"trailing"
constant=
"50"
id=
"bbe-zy-vGP"
/>
<constraint
firstItem=
"aOi-sB-YXp"
firstAttribute=
"centerY"
secondItem=
"wfB-x3-Yg3"
secondAttribute=
"centerY"
id=
"hzp-4O-sWn"
/>
<constraint
firstItem=
"cRM-ik-mZ1"
firstAttribute=
"centerY"
secondItem=
"wfB-x3-Yg3"
secondAttribute=
"centerY"
id=
"nbm-hB-C01"
/>
</constraints>
</view>
</subviews>
<color
key=
"backgroundColor"
white=
"1"
alpha=
"1"
colorSpace=
"calibratedWhite"
/>
<constraints>
<constraint
firstItem=
"wfB-x3-Yg3"
firstAttribute=
"leading"
secondItem=
"phf-Yh-r1z"
secondAttribute=
"leading"
id=
"FBm-GK-tHj"
/>
<constraint
firstItem=
"wfB-x3-Yg3"
firstAttribute=
"top"
secondItem=
"phf-Yh-r1z"
secondAttribute=
"top"
id=
"Nql-eH-b43"
/>
<constraint
firstAttribute=
"bottom"
secondItem=
"uQ5-LY-iWo"
secondAttribute=
"bottom"
id=
"X2e-xf-iXK"
/>
<constraint
firstAttribute=
"trailing"
secondItem=
"uQ5-LY-iWo"
secondAttribute=
"trailing"
id=
"bcI-Xc-CAy"
/>
<constraint
firstItem=
"uQ5-LY-iWo"
firstAttribute=
"top"
secondItem=
"phf-Yh-r1z"
secondAttribute=
"top"
constant=
"20"
id=
"rC7-ik-Dfr"
/>
<constraint
firstItem=
"uQ5-LY-iWo"
firstAttribute=
"leading"
secondItem=
"phf-Yh-r1z"
secondAttribute=
"leading"
id=
"xwA-Ce-VsC"
/>
<constraint
firstAttribute=
"trailing"
secondItem=
"wfB-x3-Yg3"
secondAttribute=
"trailing"
id=
"yGC-ga-jQO"
/>
</constraints>
</view>
</subviews>
<color
key=
"backgroundColor"
red=
"1"
green=
"1"
blue=
"1"
alpha=
"1"
colorSpace=
"custom"
customColorSpace=
"sRGB"
/>
<constraints>
<constraint
firstAttribute=
"trailing"
secondItem=
"phf-Yh-r1z"
secondAttribute=
"trailing"
id=
"4Wq-hy-RLx"
/>
<constraint
firstItem=
"phf-Yh-r1z"
firstAttribute=
"top"
secondItem=
"iN0-l3-epB"
secondAttribute=
"top"
id=
"ebd-yK-Tec"
/>
<constraint
firstAttribute=
"bottom"
secondItem=
"phf-Yh-r1z"
secondAttribute=
"bottom"
id=
"nDT-2t-8XL"
/>
<constraint
firstItem=
"phf-Yh-r1z"
firstAttribute=
"leading"
secondItem=
"iN0-l3-epB"
secondAttribute=
"leading"
id=
"u0Z-64-52c"
/>
</constraints>
<nil
key=
"simulatedStatusBarMetrics"
/>
<freeformSimulatedSizeMetrics
key=
"simulatedDestinationMetrics"
/>
</view>
</objects>
<resources>
<image
name=
"test_product_detail"
width=
"375"
height=
"534"
/>
</resources>
</document>
iCemarose/Class/UI/NewProduct/KWMNewProductVC.h
View file @
af1531be
...
...
@@ -12,8 +12,9 @@
#import "KWMVariantsVC.h"
#import "KWMFirstDetailView.h"
#import "KWMSecondDetailView.h"
#import "KWMMidDetailView.h"
@interface
KWMNewProductVC
:
KWMBaseVC
<
KWMFirstDetailViewDelegate
,
KWMVariantsVCDelegate
>
@interface
KWMNewProductVC
:
KWMBaseVC
<
KWMFirstDetailViewDelegate
,
KWMVariantsVCDelegate
,
KWMSecondDetailViewDelegate
>
@property
(
nonatomic
)
BUYProduct
*
product
;
...
...
iCemarose/Class/UI/NewProduct/KWMNewProductVC.m
View file @
af1531be
...
...
@@ -17,6 +17,7 @@
#import "KWMShoppingCart.h"
#import "KWMImageUtil.h"
#import "KWMStringUtil.h"
#import "KWMShopCartVC.h"
@interface
KWMNewProductVC
()
...
...
@@ -24,9 +25,15 @@
@property
(
weak
,
nonatomic
)
IBOutlet
KWMSecondDetailView
*
detailView2
;
@property
(
weak
,
nonatomic
)
IBOutlet
KWMMidDetailView
*
midDetailView
;
@property
(
weak
,
nonatomic
)
IBOutlet
UIButton
*
btnShopCart
;
@property
(
weak
,
nonatomic
)
IBOutlet
UIScrollView
*
scrollView
;
@property
(
weak
,
nonatomic
)
IBOutlet
UIButton
*
btnLike
;
@property
(
weak
,
nonatomic
)
IBOutlet
UIImageView
*
ivShare
;
@property
(
weak
,
nonatomic
)
IBOutlet
NSLayoutConstraint
*
heightMidView
;
//颜色扩展字段
@property
(
nonatomic
)
KWMMetafield
*
colorMeterfield
;
...
...
@@ -40,14 +47,24 @@
//选中的颜色
@property
(
nonatomic
)
KWMColor
*
color
;
//选中的数量
@property
(
nonatomic
)
NSInteger
count
;
@property
(
nonatomic
)
BOOL
isLikeVariant
;
@property
(
nonatomic
)
KWMProduct
*
adminProduct
;
@end
@implementation
KWMNewProductVC
-
(
void
)
viewDidLoad
{
[
super
viewDidLoad
];
self
.
productId
=
@
(
7436196294
);
self
.
product
=
nil
;
[
self
initView
];
}
...
...
@@ -66,16 +83,48 @@
}
-
(
void
)
initView
{
[
self
.
btnLike
setImage
:[
UIImage
imageNamed
:
@"ic_like_unable"
]
forState
:
UIControlStateNormal
];
self
.
productId
=
@
(
7436196294
);
self
.
detailView1
.
delegate
=
self
;
self
.
colorArray
=
[
NSMutableArray
array
];
[
self
requestProductDetail
];
self
.
detailView1
.
delegate
=
self
;
self
.
detailView2
.
delegate
=
self
;
if
(
self
.
product
){
self
.
midDetailView
.
product
=
self
.
product
;
[
self
.
detailView1
setData
:
self
.
product
];
[
self
requestBrandProducts
:
1
];
[
self
requestCategoryProducts
:
1
];
}
else
{
[
self
requestProductDetail
];
}
[
self
requestColorMetafield
];
[
self
requestAdminProduct
];
[
self
initShopCartCount
];
[
self
initMidViewHight
];
[
self
.
btnLike
setImage
:[
UIImage
imageNamed
:
@"ic_like_unable"
]
forState
:
UIControlStateNormal
];
}
-
(
void
)
initShopCartCount
{
NSNumber
*
count
=
[[
KWMShoppingCart
sharedInstance
]
count
];
[
self
.
btnShopCart
setTitle
:
count
.
stringValue
forState
:
UIControlStateNormal
];
}
-
(
void
)
initMidViewHight
{
if
(
self
.
product
){
if
([
KWMStringUtil
isEmpty
:
self
.
product
.
stringDescription
]){
self
.
heightMidView
.
constant
=
86
.
5
;
}
else
{
NSString
*
detail
=
self
.
product
.
stringDescription
;
//获得字体,计算文字显示所需高度
UIFont
*
font
=
[
UIFont
systemFontOfSize
:
11
];
if
(
SYSTEM_VERSION_LESS_THAN
(
@"9.0"
)){
[
UIFont
fontWithName
:
@"PingFang SC"
size
:
11
];
}
NSInteger
heightLbDetail
=
[
KWMStringUtil
getLabelHeight
:
detail
labelFont
:
font
textWidth
:
UI_SCREEN_WIDTH
-
20
].
height
;
self
.
heightMidView
.
constant
=
(
86
.
5
-
15
+
heightLbDetail
);
}
}
}
//请求API得到颜色Meterfield后才会调用这个.
-
(
void
)
initColorData
{
if
(
!
self
.
colorMeterfield
||
[
KWMStringUtil
isEmpty
:
self
.
colorMeterfield
.
value
]){
...
...
@@ -89,10 +138,23 @@
KWMColor
*
color
=
[
KWMColor
new
];
color
.
handle
=
colorInfo
[
0
];
color
.
title
=
colorInfo
[
1
];
if
(
self
.
product
&&
[
color
.
handle
isEqualToString
:
self
.
product
.
handle
]){
color
.
product
=
self
.
product
;
[
self
.
colorArray
addObject
:
color
];
}
else
{
[
self
requestProductByColor
:
color
];
}
}
}
}
-
(
void
)
clearSelect
{
self
.
color
=
nil
;
self
.
variant
=
nil
;
self
.
count
=
0
;
if
(
self
.
detailView1
){
[
self
.
detailView1
setSelect
:
nil
color
:
nil
count
:
0
];
}
}
...
...
@@ -100,6 +162,11 @@
[
self
.
navigationController
popViewControllerAnimated
:
YES
];
}
-
(
IBAction
)
onClickShopCart
:
(
id
)
sender
{
KWMShopCartVC
*
shopCartVC
=
(
KWMShopCartVC
*
)[
KWMBaseVC
findControllerBy
:[
KWMShopCartVC
kwmTag
]
fromStoryboard
:
@"ShopCart"
];
[
self
.
navigationController
pushViewController
:
shopCartVC
animated
:
YES
];
}
-
(
IBAction
)
onClickShare
:
(
id
)
sender
{
if
(
self
.
product
){
KWMShareVC
*
shareVC
=
(
KWMShareVC
*
)[
KWMBaseVC
findControllerBy
:[
KWMShareVC
kwmTag
]
fromStoryboard
:
@"New"
];
...
...
@@ -112,6 +179,14 @@
}
-
(
IBAction
)
onClickLike
:
(
id
)
sender
{
KWMUserModel
*
useModel
=
[
KWMUserModel
shareUser
];
if
(
!
useModel
.
status
)
{
//登录
KWMLoginVC
*
loginVc
=
(
KWMLoginVC
*
)[
KWMBaseVC
findControllerBy
:[
KWMLoginVC
kwmTag
]
fromStoryboard
:
@"Login"
];
UINavigationController
*
nav
=
[[
UINavigationController
alloc
]
initWithRootViewController
:
loginVc
];
[
self
presentViewController
:
nav
animated
:
YES
completion
:
nil
];
return
;
}
if
(
self
.
isLikeVariant
){
[
self
requestRemoveWish
];
}
else
{
...
...
@@ -119,69 +194,38 @@
}
}
#pragma mark -- KWMFirstDetailViewDelegate
-
(
void
)
kwm_onClickSizeBtn
{
KWMVariantsVC
*
variantsVC
=
(
KWMVariantsVC
*
)[
KWMVariantsVC
findControllerBy
:[
KWMVariantsVC
kwmTag
]
fromStoryboard
:
@"NewProduct"
];
variantsVC
.
product
=
self
.
product
;
variantsVC
.
colorArray
=
self
.
colorArray
;
variantsVC
.
delegate
=
self
;
CGSize
size
=
[
UIScreen
mainScreen
].
bounds
.
size
;
[
self
showPresentation
:
variantsVC
size
:
size
tapOutsideClose
:
YES
style
:
MZFormSheetPresentationTransitionStyleFade
];
}
-
(
void
)
kwm_goToBrandVC
{
if
(
self
.
product
&&
self
.
product
.
vendor
){
KWMBrandCaramelVC
*
brandCaramelVC
=
(
KWMBrandCaramelVC
*
)[
KWMBrandCaramelVC
findControllerBy
:[
KWMBrandCaramelVC
kwmTag
]
fromStoryboard
:
@"Brand"
];
NSString
*
brand
=
self
.
product
.
vendor
;
brandCaramelVC
.
brand
=
brand
;
brandCaramelVC
.
handle
=
[
KWMStringUtil
deleteOtherCharExceptLetterWithLine
:
brand
];
brandCaramelVC
.
isSale
=
NO
;
[
self
.
navigationController
pushViewController
:
brandCaramelVC
animated
:
YES
];
-
(
IBAction
)
onClickComplete
:
(
UIButton
*
)
sender
{
BOOL
buyNow
=
sender
.
tag
==
1
;
if
(
!
self
.
variant
){
[
self
showToast
:
@"请选择商品"
];
return
;
}
}
-
(
void
)
kwm_onClickImage
:
(
NSMutableArray
*
)
imageArr
currentIndex
:
(
NSInteger
)
currentIndex
{
__weak
KWMNewProductVC
*
weakSelf
=
self
;
NSArray
<
NSString
*>
*
imags
=
imageArr
;
[
PhotoBroswerVC
show
:
self
type
:
PhotoBroswerVCTypePush
index
:
currentIndex
isShowSaveBtn
:
YES
photoModelBlock
:^
NSArray
*
{
NSArray
*
localImages
=
imags
;
NSMutableArray
*
modelsM
=
[
NSMutableArray
arrayWithCapacity
:
localImages
.
count
];
for
(
NSUInteger
i
=
0
;
i
<
localImages
.
count
;
i
++
)
{
PhotoModel
*
pbModel
=
[[
PhotoModel
alloc
]
init
];
pbModel
.
mid
=
i
+
1
;
//源frame
UIImageView
*
imageV
=
[[
UIImageView
alloc
]
initWithFrame
:
CGRectMake
(
0
,
0
,
weakSelf
.
view
.
frame
.
size
.
width
,
weakSelf
.
view
.
frame
.
size
.
height
)];
pbModel
.
sourceImageView
=
imageV
;
pbModel
.
image_HD_U
=
[[
KWMAPIManager
sharedManager
]
toAbsoluteUrl
:
localImages
[
i
]];
[
modelsM
addObject
:
pbModel
];
[
self
showLoading
];
__weak
KWMNewProductVC
*
this
=
self
;
[
self
addShopWithVariantId
:
self
.
variant
.
identifier
quantity
:
self
.
count
variant
:
self
.
variant
buyNow
:
buyNow
callback
:^
(
BOOL
success
)
{
[
this
hideLoading
];
if
(
success
)
{
if
(
!
buyNow
){
[
this
initShopCartCount
];
[
this
clearSelect
];
}
//[this dismissViewControllerAnimated:YES completion:nil];
}
return
modelsM
;
}];
}
#pragma mark - KWMVariantsVCDelegate
-
(
void
)
kwm_setVariant
:
(
KWMVariantsVC
*
)
variantsVC
variant
:
(
BUYProductVariant
*
)
variant
color
:
(
KWMColor
*
)
color
{
[
self
.
btnLike
setImage
:[
UIImage
imageNamed
:
@"ic_like"
]
forState
:
UIControlStateNormal
];
self
.
detailView1
.
variant
=
variant
;
self
.
variant
=
variant
;
self
.
color
=
color
;
self
.
isLikeVariant
=
NO
;
[
self
requestWishList
];
}
-
(
void
)
kwm_addShopWithVariantId
:
(
NSNumber
*
)
identifier
quantity
:
(
NSInteger
)
quantity
variant
:
(
BUYProductVariant
*
)
variant
buyNow
:
(
BOOL
)
buyNow
callback
:
(
void
(
^
)(
BOOL
))
callback
{
//添加商品
-
(
void
)
addShopWithVariantId
:
(
NSNumber
*
)
identifier
quantity
:
(
NSInteger
)
quantity
variant
:
(
BUYProductVariant
*
)
variant
buyNow
:
(
BOOL
)
buyNow
callback
:
(
void
(
^
)(
BOOL
))
callback
{
__weak
KWMNewProductVC
*
this
=
self
;
if
(
!
buyNow
)
{
[[
KWMShoppingCart
sharedInstance
]
increaseProductWithVariantId
:
identifier
quantity
:
quantity
callback
:^
(
NSError
*
error
,
KWMCartResult
*
cart
)
{
if
(
cart
.
items
.
firstObject
&&
!
cart
.
items
.
firstObject
.
product_id
)
{
KWMShopCartModel
*
model
=
cart
.
items
.
firstObject
;
BUYImageLink
*
il
=
this
.
product
.
images
.
firstObject
;
// model.imageStr = [KWMImageUtil getProductImageUrl:this.product.identifier ImageSize:NormalImage];
model
.
imageStr
=
[
KWMImageUtil
getProductImageUrlByOriginalUrl
:
il
.
sourceURL
.
absoluteString
ImageSize
:
NormalImage
];
model
.
name
=
this
.
product
.
title
;
model
.
brand
=
this
.
product
.
vendor
;
model
.
size
=
variant
.
title
;
// model.price = variant.price.floatValue;
model
.
price
=
variant
.
price
;
model
.
product_id
=
this
.
product
.
identifier
;
}
...
...
@@ -216,6 +260,77 @@
}
#pragma mark -- KWMSecondDetailViewDelegate
-
(
void
)
kwm_clickCollectionCell
:
(
BUYProduct
*
)
product
{
if
(
!
product
){
return
;
}
self
.
product
=
product
;
self
.
productId
=
product
.
identifier
;
[
self
.
scrollView
setContentOffset
:
CGPointMake
(
0
,
0
)
animated
:
YES
];
[
self
initView
];
[
self
clearSelect
];
}
#pragma mark -- KWMFirstDetailViewDelegate
-
(
void
)
kwm_onClickSizeBtn
{
KWMVariantsVC
*
variantsVC
=
(
KWMVariantsVC
*
)[
KWMVariantsVC
findControllerBy
:[
KWMVariantsVC
kwmTag
]
fromStoryboard
:
@"NewProduct"
];
variantsVC
.
product
=
self
.
product
;
variantsVC
.
adminProduct
=
self
.
adminProduct
;
variantsVC
.
colorArray
=
self
.
colorArray
;
variantsVC
.
delegate
=
self
;
if
(
self
.
variant
){
[
variantsVC
setDefaultSelect
:
self
.
variant
color
:
self
.
color
count
:
self
.
count
];
}
CGSize
size
=
[
UIScreen
mainScreen
].
bounds
.
size
;
[
self
showPresentation
:
variantsVC
size
:
size
tapOutsideClose
:
YES
style
:
MZFormSheetPresentationTransitionStyleFade
];
}
-
(
void
)
kwm_goToBrandVC
{
if
(
self
.
product
&&
self
.
product
.
vendor
){
KWMBrandCaramelVC
*
brandCaramelVC
=
(
KWMBrandCaramelVC
*
)[
KWMBrandCaramelVC
findControllerBy
:[
KWMBrandCaramelVC
kwmTag
]
fromStoryboard
:
@"Brand"
];
NSString
*
brand
=
self
.
product
.
vendor
;
brandCaramelVC
.
brand
=
brand
;
brandCaramelVC
.
handle
=
[
KWMStringUtil
deleteOtherCharExceptLetterWithLine
:
brand
];
brandCaramelVC
.
isSale
=
NO
;
[
self
.
navigationController
pushViewController
:
brandCaramelVC
animated
:
YES
];
}
}
-
(
void
)
kwm_onClickImage
:
(
NSMutableArray
*
)
imageArr
currentIndex
:
(
NSInteger
)
currentIndex
{
__weak
KWMNewProductVC
*
weakSelf
=
self
;
NSArray
<
NSString
*>
*
imags
=
imageArr
;
[
PhotoBroswerVC
show
:
self
type
:
PhotoBroswerVCTypePush
index
:
currentIndex
isShowSaveBtn
:
YES
photoModelBlock
:^
NSArray
*
{
NSArray
*
localImages
=
imags
;
NSMutableArray
*
modelsM
=
[
NSMutableArray
arrayWithCapacity
:
localImages
.
count
];
for
(
NSUInteger
i
=
0
;
i
<
localImages
.
count
;
i
++
)
{
PhotoModel
*
pbModel
=
[[
PhotoModel
alloc
]
init
];
pbModel
.
mid
=
i
+
1
;
//源frame
UIImageView
*
imageV
=
[[
UIImageView
alloc
]
initWithFrame
:
CGRectMake
(
0
,
0
,
weakSelf
.
view
.
frame
.
size
.
width
,
weakSelf
.
view
.
frame
.
size
.
height
)];
pbModel
.
sourceImageView
=
imageV
;
pbModel
.
image_HD_U
=
[[
KWMAPIManager
sharedManager
]
toAbsoluteUrl
:
localImages
[
i
]];
[
modelsM
addObject
:
pbModel
];
}
return
modelsM
;
}];
}
#pragma mark - KWMVariantsVCDelegate
-
(
void
)
kwm_setVariant
:
(
KWMVariantsVC
*
)
variantsVC
variant
:
(
BUYProductVariant
*
)
variant
color
:
(
KWMColor
*
)
color
count
:
(
NSInteger
)
count
{
[
self
.
btnLike
setImage
:[
UIImage
imageNamed
:
@"ic_like"
]
forState
:
UIControlStateNormal
];
[
self
.
detailView1
setSelect
:
variant
color
:
color
count
:
count
];
self
.
variant
=
variant
;
self
.
color
=
color
;
self
.
count
=
count
;
self
.
isLikeVariant
=
NO
;
[
self
requestWishList
];
}
#pragma mark - API BUYClient+Storefront
-
(
void
)
requestProductDetail
{
if
(
!
self
.
productId
&&
!
self
.
product
){
...
...
@@ -229,7 +344,11 @@
[
weakSelf
showError
:
error
];
}
else
if
(
product
){
weakSelf
.
product
=
product
;
[
weakSelf
initMidViewHight
];
weakSelf
.
midDetailView
.
product
=
product
;
[
weakSelf
.
detailView1
setData
:
product
];
[
self
requestBrandProducts
:
1
];
[
self
requestCategoryProducts
:
1
];
}
}];
}
...
...
@@ -243,17 +362,17 @@
if
(
error
){
}
else
if
(
product
){
color
.
prod
cu
t
=
product
;
color
.
prod
uc
t
=
product
;
[
weakSelf
.
colorArray
addObject
:
color
];
}
}];
}
-
(
void
)
requestBrandProducts
:
(
NSInteger
)
page
{
//
if(!self.product){
//
return;
//
}
NSString
*
handle
=
@"girls"
;
if
(
!
self
.
product
){
return
;
}
NSString
*
handle
=
[
KWMStringUtil
deleteOtherCharExceptLetterWithLine
:
self
.
product
.
vendor
]
;
self
.
detailView2
.
isLoadingSameBrand
=
YES
;
__weak
KWMNewProductVC
*
weakSelf
=
self
;
[
self
.
client
getCollectionByHandle
:
handle
completion
:
^
(
BUYCollection
*
_Nullable
collection
,
NSError
*
_Nullable
error
)
{
...
...
@@ -271,10 +390,10 @@
}
-
(
void
)
requestCategoryProducts
:
(
NSInteger
)
page
{
//
if(!self.product){
//
return;
//
}
NSString
*
handle
=
@"girls"
;
if
(
!
self
.
product
){
return
;
}
NSString
*
handle
=
self
.
product
.
productType
;
self
.
detailView2
.
isLoadingSameType
=
YES
;
__weak
KWMNewProductVC
*
weakSelf
=
self
;
[
self
.
client
getCollectionByHandle
:
handle
completion
:
^
(
BUYCollection
*
_Nullable
collection
,
NSError
*
_Nullable
error
)
{
...
...
@@ -290,9 +409,24 @@
}];
}
#pragma mark -- API KWMApimanager
-
(
void
)
requestAdminProduct
{
NSNumber
*
productId
=
self
.
product
?
self
.
product
.
identifier
:
self
.
productId
;
__weak
KWMNewProductVC
*
weakSelf
=
self
;
void
(
^
failure
)(
NSURLSessionDataTask
*
,
NSError
*
)
=
^
(
NSURLSessionDataTask
*
task
,
NSError
*
error
){
};
void
(
^
success
)(
NSURLSessionDataTask
*
,
KWMProductResult
*
)
=
^
(
NSURLSessionDataTask
*
task
,
KWMProductResult
*
result
){
if
(
result
!=
nil
&&
result
.
product
!=
nil
){
KWMProduct
*
adminProduct
=
(
KWMProduct
*
)
result
.
product
;
weakSelf
.
adminProduct
=
adminProduct
;
}
};
[
self
.
api
getAdminProduct
:
nil
productId
:
productId
success
:
success
failure
:
failure
];
}
#pragma mark apimanager
-
(
void
)
requestColorMetafield
{
NSNumber
*
productId
=
self
.
product
?
self
.
product
.
identifier
:
self
.
productId
;
__weak
KWMNewProductVC
*
weakSelf
=
self
;
void
(
^
failure
)(
NSURLSessionDataTask
*
,
NSError
*
)
=
^
(
NSURLSessionDataTask
*
task
,
NSError
*
error
){
[
weakSelf
showError
:
error
];
...
...
@@ -310,7 +444,7 @@
}
}
};
[
self
.
api
getProductMetafield
:
nil
productId
:
@
(
7436196294
)
success
:
success
failure
:
failure
];
[
self
.
api
getProductMetafield
:
nil
productId
:
productId
success
:
success
failure
:
failure
];
}
...
...
@@ -325,7 +459,7 @@
NSDictionary
*
parament
=
@{
@"customer_id"
:
customer
.
identifier
.
stringValue
,
@"customer_email"
:
customer
.
email
,
@"var
ai
nt_id"
:
variant
.
identifier
.
stringValue
,
@"var
ia
nt_id"
:
variant
.
identifier
.
stringValue
,
@"shop"
:
Shopify_SHOP_DOMAIN
};
void
(
^
failure
)(
NSURLSessionDataTask
*
,
NSError
*
)
=
^
(
NSURLSessionDataTask
*
task
,
NSError
*
error
){
...
...
@@ -342,7 +476,6 @@
weakSelf
.
isLikeVariant
=
YES
;
}
}
};
[
self
.
api
getWishList
:
parament
success
:
success
failure
:
failure
];
}
...
...
iCemarose/Class/UI/NewProduct/KWMVariantsVC.h
View file @
af1531be
...
...
@@ -18,9 +18,11 @@
@class
KWMVariantsVC
;
@protocol
KWMVariantsVCDelegate
<
NSObject
>
@optional
-
(
void
)
kwm_addShopWithVariantId
:
(
NSNumber
*
)
identifier
quantity
:
(
NSInteger
)
quantity
variant
:
(
BUYProductVariant
*
)
variant
buyNow
:
(
BOOL
)
buyNow
callback
:
(
void
(
^
)(
BOOL
))
callback
;
-
(
void
)
kwm_setVariant
:(
KWMVariantsVC
*
)
variantsVC
variant
:(
BUYProductVariant
*
)
variant
color
:(
KWMColor
*
)
color
;
@optional
-
(
void
)
kwm_setVariant
:
(
KWMVariantsVC
*
)
variantsVC
variant
:
(
BUYProductVariant
*
)
variant
color
:
(
KWMColor
*
)
color
count
:
(
NSInteger
)
count
;
@end
@interface
KWMVariantsVC
:
KWMBaseVC
<
UICollectionViewDataSource
,
UICollectionViewDelegate
,
UICollectionViewDelegateFlowLayout
>
...
...
@@ -31,6 +33,9 @@
//required 商品模型,必须有
@property
(
nonatomic
)
BUYProduct
*
product
;
//optional 可以传也可以不传,与product对应,用于填充库存显示
@property
(
nonatomic
)
KWMProduct
*
adminProduct
;
//optional 有颜色可选时,需要赋值该字段.
@property
(
nonatomic
)
NSArray
<
KWMColor
*>
*
colorArray
;
...
...
@@ -40,4 +45,6 @@
//optional 购物车页跳转来时,需要赋值该字段。
@property
(
nonatomic
)
KWMShopCartModel
*
shopCartModel
;
-
(
void
)
setDefaultSelect
:(
BUYProductVariant
*
)
variant
color
:(
KWMColor
*
)
color
count
:(
NSInteger
)
count
;
@end
iCemarose/Class/UI/NewProduct/KWMVariantsVC.m
View file @
af1531be
...
...
@@ -12,6 +12,7 @@
#import "KWMProductSizeCell.h"
#import "KWMProductColorCell.h"
#import "KWMCurrencyUtil.h"
#import "KWMStringUtil.h"
#import "BUYProductVariant+Currency.h"
#import "UIColor+SAMAdditions.h"
...
...
@@ -25,8 +26,6 @@
@property
(
nonatomic
)
IBOutlet
UILabel
*
lbCount
;
@property
(
nonatomic
)
NSInteger
count
;
@property
(
nonatomic
)
NSDecimalNumber
*
totalPrice
;
...
...
@@ -69,6 +68,12 @@
return
[
NSArray
array
];
}
-
(
void
)
setDefaultSelect
:
(
BUYProductVariant
*
)
variant
color
:
(
KWMColor
*
)
color
count
:
(
NSInteger
)
count
{
self
.
selectColor
=
color
;
self
.
selectVariant
=
variant
;
self
.
count
=
count
;
}
-
(
void
)
setAdminVariantArray
:
(
NSArray
<
KWMVariants
*>
*
)
adminVariantArray
{
_adminVariantArray
=
adminVariantArray
;
if
(
adminVariantArray
&&
self
.
selectVariant
){
...
...
@@ -82,11 +87,18 @@
-
(
void
)
setProduct
:
(
BUYProduct
*
)
product
{
_product
=
product
;
if
(
!
_variantArray
&&
product
){
if
(
product
){
self
.
variantArray
=
product
.
variantsArray
;
}
}
-
(
void
)
setAdminProduct
:
(
KWMProduct
*
)
adminProduct
{
_adminProduct
=
adminProduct
;
if
(
adminProduct
){
self
.
adminVariantArray
=
adminProduct
.
variants
;
}
}
-
(
void
)
setShopCartModel
:
(
KWMShopCartModel
*
)
shopCartModel
{
_shopCartModel
=
shopCartModel
;
if
(
shopCartModel
&&
self
.
variantArray
){
...
...
@@ -100,17 +112,28 @@
}
-
(
void
)
initView
{
if
(
self
.
product
&&
self
.
colorArray
){
[
self
initDefaultColor
];
[
self
initUI
];
[
self
initCollectionView
];
[
self
initContentHeight
];
if
(
!
self
.
adminProduct
){
[
self
requestAdminProduct
:
self
.
product
.
identifier
];
}
}
-
(
void
)
initDefaultColor
{
if
(
self
.
product
&&
self
.
colorArray
&&
!
self
.
selectColor
){
for
(
KWMColor
*
color
in
self
.
colorArray
){
if
([
color
.
handle
isEqual
:
self
.
product
.
handle
]){
self
.
selectColor
=
color
;
break
;
self
.
selectColor
.
adminProduct
=
self
.
adminProduct
;
return
;
}
}
}
else
if
(
self
.
selectColor
&&
self
.
selectColor
.
product
){
self
.
variantArray
=
self
.
selectColor
.
product
.
variantsArray
;
}
[
self
initUI
];
[
self
initCollectionView
];
[
self
initContentHeight
];
}
-
(
void
)
initUI
{
...
...
@@ -135,32 +158,9 @@
//初始化佈局高度
-
(
void
)
initContentHeight
{
if
(
self
.
product
!=
nil
&&
self
.
product
.
variantsArray
!=
nil
){
NSInteger
sizesHeight
=
0
;
{
NSInteger
cellCount
=
self
.
product
.
variantsArray
.
count
;
if
(
cellCount
<=
0
){
return
;
}
NSInteger
cellWidth
=
(
UI_SCREEN_WIDTH
-
(
30
+
30
)
-
(
10
*
3
))
/
3
;
NSInteger
cellHeight
=
cellWidth
*
0
.
4
;
NSInteger
lineCount
=
(
cellCount
+
2
)
/
3
;
sizesHeight
=
lineCount
*
cellHeight
+
12
*
(
lineCount
-
1
)
+
45
;
}
NSInteger
colorsHeight
=
0
;
{
NSInteger
cellCount
=
8
;
NSInteger
cellWidth
=
50
;
NSInteger
cellHeight
=
70
;
NSInteger
lineItmesNum
=
(
UI_SCREEN_WIDTH
-
70
-
12
)
/
(
12
+
cellWidth
);
NSInteger
lineCount
=
(
cellCount
+
lineItmesNum
-
1
)
/
lineItmesNum
;
colorsHeight
=
lineCount
*
cellHeight
+
12
*
(
lineCount
-
1
)
+
45
;
}
NSInteger
contentHeight
=
173
+
sizesHeight
+
colorsHeight
;
NSInteger
maxHeight
=
UI_SCREEN_HEITHT
*
0
.
8
;
self
.
vContentHeight
.
constant
=
fminl
(
contentHeight
,
maxHeight
);
}
CGFloat
height
=
self
.
cvVariants
.
collectionViewLayout
.
collectionViewContentSize
.
height
;
self
.
vContentHeight
.
constant
=
height
+
173
;
[
self
.
view
layoutIfNeeded
];
}
-
(
IBAction
)
onClickAdd
:
(
id
)
sender
{
...
...
@@ -197,25 +197,25 @@
[
self
showToast
:
@"请选择您想要的规格"
];
return
;
}
// if (self.product && !self.product.JSONDictionary){
// [self showToast:@"该商品信息缺失"];
// return;
// }
// BOOL buyNow = sender.tag == 1;
// __weak id this = self;
// [self showLoading];
// if (self.delegate) {
// [self.delegate kwm_addShopWithVariantId:self.selectVariant.identifier quantity:self.count variant:self.selectVariant buyNow:buyNow callback:^(BOOL success) {
// [self hideLoading];
// if(success) {
// [this dismissViewControllerAnimated:YES completion:nil];
// }
// }];
// }
//商品详情页现在不是添加到购物车了,而是先显示。
//所以现在是回调出去。各个页面需要干嘛自己干嘛。
[
self
.
delegate
kwm_setVariant
:
self
variant
:
self
.
selectVariant
color
:
self
.
selectColor
];
//购物车页面
if
([
self
.
delegate
respondsToSelector
:
@selector
(
kwm_addShopWithVariantId
:
quantity
:
variant
:
buyNow
:
callback
:
)]){
__weak
id
this
=
self
;
[
self
showLoading
];
if
(
self
.
delegate
)
{
[
self
.
delegate
kwm_addShopWithVariantId
:
self
.
selectVariant
.
identifier
quantity
:
self
.
count
variant
:
self
.
selectVariant
buyNow
:
false
callback
:^
(
BOOL
success
)
{
[
self
hideLoading
];
if
(
success
)
{
[
this
dismissViewControllerAnimated
:
YES
completion
:
nil
];
}
}];
}
}
//商品详情页.愿望单页
//商品详情页现在不是添加到购物车了,而是先显示。所以现在是回调出去。
if
([
self
.
delegate
respondsToSelector
:
@selector
(
kwm_setVariant
:
variant
:
color
:
count
:
)]){
[
self
.
delegate
kwm_setVariant
:
self
variant
:
self
.
selectVariant
color
:
self
.
selectColor
count
:
self
.
count
];
[
self
dismissViewControllerAnimated
:
YES
completion
:
nil
];
}
}
-
(
IBAction
)
onClickBg
:
(
id
)
sender
{
...
...
@@ -270,7 +270,7 @@
BUYProductVariant
*
variant
=
[
self
.
variantArray
objectAtIndex
:
indexPath
.
row
];
KWMVariants
*
adminVariant
=
nil
;
if
(
self
.
adminVariantArray
&&
self
.
adminVariantArray
.
count
>
indexPath
.
row
){
if
(
self
.
adminVariantArray
){
for
(
KWMVariants
*
mAdminVariant
in
self
.
adminVariantArray
){
if
([
variant
.
identifier
isEqualToNumber
:
mAdminVariant
.
id
]){
adminVariant
=
mAdminVariant
;
...
...
@@ -308,9 +308,9 @@
if
(
indexPath
.
section
==
0
){
BUYProductVariant
*
variant
=
[
self
.
variantArray
objectAtIndex
:
indexPath
.
row
];
KWMVariants
*
adminVariant
=
nil
;
if
(
self
.
adminVariantArray
&&
self
.
adminVariantArray
.
count
>
indexPath
.
row
){
if
(
self
.
adminVariantArray
){
for
(
KWMVariants
*
mAdminVariant
in
self
.
adminVariantArray
){
if
(
variant
.
identifier
.
integerValue
==
mAdminVariant
.
id
.
integerValue
){
if
(
[
variant
.
identifier
isEqualToNumber
:
mAdminVariant
.
id
]
){
adminVariant
=
mAdminVariant
;
}
}
...
...
@@ -328,10 +328,19 @@
[
self
initUI
];
}
else
if
(
indexPath
.
section
==
1
){
KWMColor
*
color
=
[
self
.
colorArray
objectAtIndex
:
indexPath
.
row
];
if
(
!
color
.
product
){
return
;
}
self
.
selectColor
=
color
;
self
.
variantArray
=
self
.
selectColor
.
prodcut
.
variantsArray
;
self
.
selectVariant
=
nil
;
self
.
selectAdminVariant
=
nil
;
self
.
variantArray
=
color
.
product
.
variantsArray
;
self
.
adminVariantArray
=
color
.
adminProduct
?
color
.
adminProduct
.
variants
:
nil
;
[
self
.
cvVariants
reloadData
];
//TODO 这里还需要更新页面高度。
[
self
initContentHeight
];
if
(
!
self
.
adminVariantArray
){
[
self
requestAdminProduct
:
self
.
selectColor
.
product
.
identifier
];
}
}
}
...
...
@@ -350,6 +359,13 @@
NSArray
<
KWMVariants
*>
*
adminVariants
=
adminProduct
.
variants
;
weakSelf
.
adminVariantArray
=
adminVariants
;
[
weakSelf
.
cvVariants
reloadData
];
if
(
weakSelf
.
colorArray
){
for
(
KWMColor
*
color
in
weakSelf
.
colorArray
){
if
(
color
.
product
&&
[
color
.
product
.
identifier
isEqualToNumber
:
productId
]){
color
.
adminProduct
=
adminProduct
;
}
}
}
}
};
[
self
.
api
getAdminProduct
:
nil
productId
:
productId
success
:
success
failure
:
failure
];
...
...
@@ -362,7 +378,7 @@
isSellOut
=
variant
.
availableValue
;
}
if
(
adminVariant
&&
!
isSellOut
){
isSellOut
=
adminVariant
.
inventoryQuantity
.
integerValue
=
=
0
;
isSellOut
=
adminVariant
.
inventoryQuantity
.
integerValue
<
=
0
;
}
return
isSellOut
;
}
...
...
iCemarose/Class/UI/NewProduct/KWMWishListVC.m
View file @
af1531be
...
...
@@ -193,7 +193,6 @@
[
weakSelf
.
tbvWish
reloadData
];
[
weakSelf
requestProductsApi
];
}
};
[
self
.
api
getWishList
:
parament
success
:
success
failure
:
failure
];
[
self
showLoading
];
...
...
iCemarose/Class/UI/NewProduct/NewProduct.storyboard
View file @
af1531be
...
...
@@ -22,7 +22,7 @@
<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=
"kgb-zB-eBa"
>
<view
contentMode=
"scaleToFill"
translatesAutoresizingMaskIntoConstraints=
"NO"
id=
"kgb-zB-eBa"
userLabel=
"头部"
>
<rect
key=
"frame"
x=
"0.0"
y=
"20"
width=
"375"
height=
"30"
/>
<subviews>
<view
alpha=
"0.5"
contentMode=
"scaleToFill"
translatesAutoresizingMaskIntoConstraints=
"NO"
id=
"BOo-eV-XG1"
>
...
...
@@ -78,47 +78,45 @@
<rect
key=
"frame"
x=
"0.0"
y=
"50"
width=
"375"
height=
"567"
/>
<subviews>
<view
contentMode=
"scaleToFill"
translatesAutoresizingMaskIntoConstraints=
"NO"
id=
"X5Y-fo-qOg"
>
<rect
key=
"frame"
x=
"-0.5"
y=
"0.0"
width=
"375"
height=
"1
520
"
/>
<rect
key=
"frame"
x=
"-0.5"
y=
"0.0"
width=
"375"
height=
"1
093.5
"
/>
<subviews>
<view
contentMode=
"scaleToFill"
translatesAutoresizingMaskIntoConstraints=
"NO"
id=
"2KH-pA-K5l"
customClass=
"KWMFirstDetailView"
>
<rect
key=
"frame"
x=
"0.0"
y=
"0.0"
width=
"375"
height=
"5
50
"
/>
<rect
key=
"frame"
x=
"0.0"
y=
"0.0"
width=
"375"
height=
"5
67
"
/>
<color
key=
"backgroundColor"
red=
"0.84705882349999995"
green=
"0.85882352939999995"
blue=
"0.87058823529999996"
alpha=
"1"
colorSpace=
"calibratedRGB"
/>
</view>
<view
contentMode=
"scaleToFill"
translatesAutoresizingMaskIntoConstraints=
"NO"
id=
"t55-gT-VGG"
customClass=
"KWMMidDetailView"
>
<rect
key=
"frame"
x=
"0.0"
y=
"567"
width=
"375"
height=
"86.5"
/>
<color
key=
"backgroundColor"
white=
"1"
alpha=
"1"
colorSpace=
"calibratedWhite"
/>
<constraints>
<constraint
firstAttribute=
"height"
constant=
"
550"
id=
"Glf-Jb-iqu
"
/>
<constraint
firstAttribute=
"height"
constant=
"
86.5"
id=
"Pwf-vg-Z3k
"
/>
</constraints>
</view>
<view
contentMode=
"scaleToFill"
translatesAutoresizingMaskIntoConstraints=
"NO"
id=
"pyO-1P-iAa"
customClass=
"KWMSecondDetailView"
>
<rect
key=
"frame"
x=
"0.0"
y=
"
550
"
width=
"375"
height=
"440"
/>
<rect
key=
"frame"
x=
"0.0"
y=
"
653.5
"
width=
"375"
height=
"440"
/>
<color
key=
"backgroundColor"
red=
"0.82745098039999998"
green=
"0.83921568629999999"
blue=
"0.85098039219999999"
alpha=
"1"
colorSpace=
"calibratedRGB"
/>
<constraints>
<constraint
firstAttribute=
"height"
constant=
"440"
id=
"SH3-J6-rwf"
/>
</constraints>
</view>
<view
contentMode=
"scaleToFill"
translatesAutoresizingMaskIntoConstraints=
"NO"
id=
"yY4-we-Oux"
customClass=
"KWMThirdDetailView"
>
<rect
key=
"frame"
x=
"0.0"
y=
"990"
width=
"375"
height=
"530"
/>
<color
key=
"backgroundColor"
red=
"0.90588235289999997"
green=
"0.81960784310000001"
blue=
"0.74117647060000003"
alpha=
"1"
colorSpace=
"custom"
customColorSpace=
"sRGB"
/>
<constraints>
<constraint
firstAttribute=
"height"
constant=
"530"
id=
"54s-uW-LSA"
/>
</constraints>
</view>
</subviews>
<color
key=
"backgroundColor"
white=
"1"
alpha=
"1"
colorSpace=
"calibratedWhite"
/>
<constraints>
<constraint
firstItem=
"yY4-we-Oux"
firstAttribute=
"top"
secondItem=
"pyO-1P-iAa"
secondAttribute=
"bottom"
id=
"04S-ES-xRD"
/>
<constraint
firstAttribute=
"trailing"
secondItem=
"yY4-we-Oux"
secondAttribute=
"trailing"
id=
"4ES-7M-OJq"
/>
<constraint
firstItem=
"pyO-1P-iAa"
firstAttribute=
"top"
secondItem=
"t55-gT-VGG"
secondAttribute=
"bottom"
id=
"3ma-ng-9xU"
/>
<constraint
firstItem=
"2KH-pA-K5l"
firstAttribute=
"top"
secondItem=
"X5Y-fo-qOg"
secondAttribute=
"top"
id=
"8uT-aR-dQJ"
/>
<constraint
firstAttribute=
"bottom"
secondItem=
"yY4-we-Oux"
secondAttribute=
"bottom"
id=
"Di8-tX-XHf"
/>
<constraint
firstItem=
"yY4-we-Oux"
firstAttribute=
"leading"
secondItem=
"X5Y-fo-qOg"
secondAttribute=
"leading"
id=
"JA6-VG-FgH"
/>
<constraint
firstItem=
"pyO-1P-iAa"
firstAttribute=
"top"
secondItem=
"2KH-pA-K5l"
secondAttribute=
"bottom"
id=
"LRX-8F-hu0"
/>
<constraint
firstItem=
"t55-gT-VGG"
firstAttribute=
"top"
secondItem=
"2KH-pA-K5l"
secondAttribute=
"bottom"
id=
"C2e-75-EH0"
/>
<constraint
firstItem=
"2KH-pA-K5l"
firstAttribute=
"leading"
secondItem=
"X5Y-fo-qOg"
secondAttribute=
"leading"
id=
"Mxu-Xv-sPL"
/>
<constraint
firstAttribute=
"trailing"
secondItem=
"pyO-1P-iAa"
secondAttribute=
"trailing"
id=
"WDZ-oF-tpJ"
/>
<constraint
firstAttribute=
"bottom"
secondItem=
"pyO-1P-iAa"
secondAttribute=
"bottom"
id=
"cfg-Kh-t6P"
/>
<constraint
firstAttribute=
"trailing"
secondItem=
"2KH-pA-K5l"
secondAttribute=
"trailing"
id=
"etv-Gx-qLz"
/>
<constraint
firstItem=
"t55-gT-VGG"
firstAttribute=
"leading"
secondItem=
"X5Y-fo-qOg"
secondAttribute=
"leading"
id=
"opZ-sC-XyM"
/>
<constraint
firstAttribute=
"trailing"
secondItem=
"t55-gT-VGG"
secondAttribute=
"trailing"
id=
"qp8-Hn-AW0"
/>
<constraint
firstItem=
"pyO-1P-iAa"
firstAttribute=
"leading"
secondItem=
"X5Y-fo-qOg"
secondAttribute=
"leading"
id=
"rsZ-aZ-dnV"
/>
</constraints>
</view>
</subviews>
<constraints>
<constraint
firstItem=
"X5Y-fo-qOg"
firstAttribute=
"top"
secondItem=
"T6J-Gp-5iu"
secondAttribute=
"top"
id=
"71V-OE-Ofi"
/>
<constraint
firstItem=
"2KH-pA-K5l"
firstAttribute=
"height"
secondItem=
"T6J-Gp-5iu"
secondAttribute=
"height"
id=
"FU7-kP-a8w"
/>
<constraint
firstAttribute=
"bottom"
secondItem=
"X5Y-fo-qOg"
secondAttribute=
"bottom"
id=
"HoY-1Q-AcT"
/>
<constraint
firstItem=
"X5Y-fo-qOg"
firstAttribute=
"leading"
secondItem=
"T6J-Gp-5iu"
secondAttribute=
"leading"
id=
"h6q-Q9-Ege"
/>
<constraint
firstItem=
"X5Y-fo-qOg"
firstAttribute=
"width"
secondItem=
"T6J-Gp-5iu"
secondAttribute=
"width"
id=
"hDJ-lJ-uUw"
/>
...
...
@@ -132,16 +130,19 @@
<rect
key=
"frame"
x=
"0.0"
y=
"0.0"
width=
"80"
height=
"50"
/>
<subviews>
<button
opaque=
"NO"
contentMode=
"scaleToFill"
contentHorizontalAlignment=
"center"
contentVerticalAlignment=
"center"
lineBreakMode=
"middleTruncation"
translatesAutoresizingMaskIntoConstraints=
"NO"
id=
"gbx-rg-A8B"
>
<rect
key=
"frame"
x=
"2
9"
y=
"14"
width=
"22"
height=
"22
"
/>
<rect
key=
"frame"
x=
"2
7.5"
y=
"12.5"
width=
"25"
height=
"25
"
/>
<constraints>
<constraint
firstAttribute=
"height"
constant=
"2
2
"
id=
"LNO-nm-wog"
/>
<constraint
firstAttribute=
"width"
constant=
"2
2
"
id=
"ou3-wY-jk0"
/>
<constraint
firstAttribute=
"height"
constant=
"2
5
"
id=
"LNO-nm-wog"
/>
<constraint
firstAttribute=
"width"
constant=
"2
5
"
id=
"ou3-wY-jk0"
/>
</constraints>
<fontDescription
key=
"fontDescription"
name=
"PingFangSC-Regular"
family=
"PingFang SC"
pointSize=
"12"
/>
<inset
key=
"contentEdgeInsets"
minX=
"7"
minY=
"5"
maxX=
"0.0"
maxY=
"0.0"
/>
<state
key=
"normal"
title=
"0"
backgroundImage=
"btn_ nav_shop cart"
>
<color
key=
"titleColor"
white=
"1"
alpha=
"1"
colorSpace=
"calibratedWhite"
/>
</state>
<connections>
<action
selector=
"onClickShopCart:"
destination=
"Vzq-D6-e57"
eventType=
"touchUpInside"
id=
"rOf-cw-IRH"
/>
</connections>
</button>
</subviews>
<color
key=
"backgroundColor"
white=
"1"
alpha=
"1"
colorSpace=
"calibratedWhite"
/>
...
...
@@ -151,13 +152,16 @@
<constraint
firstItem=
"gbx-rg-A8B"
firstAttribute=
"centerY"
secondItem=
"p6D-hx-qVB"
secondAttribute=
"centerY"
id=
"fet-ki-2vJ"
/>
</constraints>
</view>
<button
opaque=
"NO"
contentMode=
"scaleToFill"
contentHorizontalAlignment=
"center"
contentVerticalAlignment=
"center"
buttonType=
"roundedRect"
lineBreakMode=
"middleTruncation"
translatesAutoresizingMaskIntoConstraints=
"NO"
id=
"YFr-wz-mgl"
>
<button
opaque=
"NO"
tag=
"1"
contentMode=
"scaleToFill"
contentHorizontalAlignment=
"center"
contentVerticalAlignment=
"center"
buttonType=
"roundedRect"
lineBreakMode=
"middleTruncation"
translatesAutoresizingMaskIntoConstraints=
"NO"
id=
"YFr-wz-mgl"
>
<rect
key=
"frame"
x=
"80"
y=
"0.0"
width=
"147.5"
height=
"50"
/>
<color
key=
"backgroundColor"
red=
"0.94509803921568625"
green=
"0.5725490196078431"
blue=
"0.60392156862745094"
alpha=
"1"
colorSpace=
"calibratedRGB"
/>
<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=
"onClickComplete:"
destination=
"Vzq-D6-e57"
eventType=
"touchUpInside"
id=
"Mm1-sD-3RM"
/>
</connections>
</button>
<button
opaque=
"NO"
contentMode=
"scaleToFill"
contentHorizontalAlignment=
"center"
contentVerticalAlignment=
"center"
buttonType=
"roundedRect"
lineBreakMode=
"middleTruncation"
translatesAutoresizingMaskIntoConstraints=
"NO"
id=
"oPf-c2-z7n"
>
<rect
key=
"frame"
x=
"227.5"
y=
"0.0"
width=
"147.5"
height=
"50"
/>
...
...
@@ -166,6 +170,9 @@
<state
key=
"normal"
title=
"加入购物车"
>
<color
key=
"titleColor"
white=
"1"
alpha=
"1"
colorSpace=
"calibratedWhite"
/>
</state>
<connections>
<action
selector=
"onClickComplete:"
destination=
"Vzq-D6-e57"
eventType=
"touchUpInside"
id=
"tO6-dz-eNt"
/>
</connections>
</button>
<view
contentMode=
"scaleToFill"
translatesAutoresizingMaskIntoConstraints=
"NO"
id=
"Jxc-tQ-Uvl"
userLabel=
"line"
>
<rect
key=
"frame"
x=
"0.0"
y=
"0.0"
width=
"375"
height=
"1"
/>
...
...
@@ -211,13 +218,17 @@
</view>
<connections>
<outlet
property=
"btnLike"
destination=
"jLv-Vv-7Vi"
id=
"sep-kb-Y2L"
/>
<outlet
property=
"btnShopCart"
destination=
"gbx-rg-A8B"
id=
"vel-Ab-0rI"
/>
<outlet
property=
"detailView1"
destination=
"2KH-pA-K5l"
id=
"ynO-by-UfZ"
/>
<outlet
property=
"detailView2"
destination=
"pyO-1P-iAa"
id=
"scJ-Iv-fnz"
/>
<outlet
property=
"heightMidView"
destination=
"Pwf-vg-Z3k"
id=
"h8Z-Kr-bXi"
/>
<outlet
property=
"midDetailView"
destination=
"t55-gT-VGG"
id=
"BRI-de-9Jz"
/>
<outlet
property=
"scrollView"
destination=
"T6J-Gp-5iu"
id=
"ZLc-Xh-Pyk"
/>
</connections>
</viewController>
<placeholder
placeholderIdentifier=
"IBFirstResponder"
id=
"uHF-Hi-PUR"
userLabel=
"First Responder"
sceneMemberID=
"firstResponder"
/>
</objects>
<point
key=
"canvasLocation"
x=
"-
298.39999999999998"
y=
"68.815592203898049
"
/>
<point
key=
"canvasLocation"
x=
"-
302"
y=
"57
"
/>
</scene>
<!--选择规格-->
<scene
sceneID=
"V5g-Le-Who"
>
...
...
@@ -482,6 +493,7 @@
<constraints>
<constraint
firstAttribute=
"trailing"
secondItem=
"vHl-zd-90x"
secondAttribute=
"trailing"
id=
"6Su-re-kzG"
/>
<constraint
firstItem=
"fdk-xz-fYd"
firstAttribute=
"top"
secondItem=
"TiG-qk-9ZW"
secondAttribute=
"bottom"
id=
"KZO-B8-qIK"
/>
<constraint
firstItem=
"fdk-xz-fYd"
firstAttribute=
"height"
secondItem=
"FcM-Ya-Fa9"
secondAttribute=
"height"
multiplier=
"0.8"
priority=
"999"
id=
"YlW-WO-sB5"
/>
<constraint
firstAttribute=
"trailing"
secondItem=
"fdk-xz-fYd"
secondAttribute=
"trailing"
id=
"kSN-FT-NaO"
/>
<constraint
firstItem=
"vHl-zd-90x"
firstAttribute=
"top"
secondItem=
"FcM-Ya-Fa9"
secondAttribute=
"top"
id=
"lDR-mG-00h"
/>
<constraint
firstItem=
"qc8-5Y-jmQ"
firstAttribute=
"top"
secondItem=
"fdk-xz-fYd"
secondAttribute=
"bottom"
id=
"lko-ph-zJP"
/>
...
...
@@ -501,7 +513,7 @@
</viewController>
<placeholder
placeholderIdentifier=
"IBFirstResponder"
id=
"MKE-1G-zhs"
userLabel=
"First Responder"
sceneMemberID=
"firstResponder"
/>
</objects>
<point
key=
"canvasLocation"
x=
"
1034"
y=
"90
"
/>
<point
key=
"canvasLocation"
x=
"
983"
y=
"57
"
/>
</scene>
<!--我喜欢的-->
<scene
sceneID=
"D2D-DR-hOl"
>
...
...
iCemarose/Class/UI/ShopCart/KWMShopCartVC.h
View file @
af1531be
...
...
@@ -9,8 +9,10 @@
#import "KWMBaseVC.h"
#import "KWMShopCarCell.h"
#import "KWMDeleteView.h"
#import "KWMVariantsVC.h"
@interface
KWMShopCartVC
:
KWMBaseVC
<
KWMShopCarDelegate
,
KWMDeleteDelegate
,
UITableViewDelegate
,
UITableViewDataSource
>
@interface
KWMShopCartVC
:
KWMBaseVC
<
KWMShopCarDelegate
,
KWMDeleteDelegate
,
KWMVariantsVCDelegate
,
UITableViewDelegate
,
UITableViewDataSource
>
@property
(
weak
,
nonatomic
)
IBOutlet
UITableView
*
tbvCart
;
...
...
iCemarose/Class/UI/ShopCart/KWMShopCartVC.m
View file @
af1531be
...
...
@@ -17,7 +17,7 @@
#import "KWMStringUtil.h"
#import "KWMShoppingCart.h"
@interface
KWMShopCartVC
()
<
KWMSelectSizeVCDelegate
>
@interface
KWMShopCartVC
()
@property
(
nonatomic
)
NSMutableArray
*
shopCartList
;
@end
...
...
@@ -125,39 +125,31 @@
[
self
showLoading
];
[
self
.
client
getProductById
:
shopCartModel
.
product_id
completion
:
^
(
BUYProduct
*
_Nullable
product
,
NSError
*
_Nullable
error
)
{
[
this
hideLoading
];
this
.
definesPresentationContext
=
YES
;
KWMSelectSizeVC
*
editVC
=
(
KWMSelectSizeVC
*
)[
KWMBaseVC
findControllerBy
:[
KWMSelectSizeVC
kwmTag
]
fromStoryboard
:
@"ShopCart"
];
editVC
.
delegate
=
this
;
// BUYProduct * product = [[BUYProduct alloc] initWithModelManager:self.client.modelManager JSONDictionary:shopCartModel.shopCartDict];
editVC
.
isShopcart
=
YES
;
editVC
.
product
=
product
;
editVC
.
shopCartModel
=
shopCartModel
;
editVC
.
view
.
backgroundColor
=
[
UIColor
colorWithRed
:
0
green
:
0
blue
:
0
alpha
:
0
];
editVC
.
modalPresentationStyle
=
UIModalPresentationOverCurrentContext
;
editVC
.
providesPresentationContextTransitionStyle
=
YES
;
editVC
.
definesPresentationContext
=
YES
;
[
this
presentViewController
:
editVC
animated
:
YES
completion
:
nil
];
}];
if
(
product
){
KWMVariantsVC
*
variantsVC
=
(
KWMVariantsVC
*
)[
KWMVariantsVC
findControllerBy
:[
KWMVariantsVC
kwmTag
]
fromStoryboard
:
@"NewProduct"
];
variantsVC
.
product
=
product
;
variantsVC
.
delegate
=
self
;
variantsVC
.
shopCartModel
=
shopCartModel
;
CGSize
size
=
[
UIScreen
mainScreen
].
bounds
.
size
;
[
self
showPresentation
:
variantsVC
size
:
size
tapOutsideClose
:
YES
style
:
MZFormSheetPresentationTransitionStyleFade
];
}
//設置背景為透明
// if ([[UIDevice currentDevice].systemVersion floatValue] >= 8.0) {
// this.definesPresentationContext = YES;
// KWMSelectSizeVC *editVC = (KWMSelectSizeVC *)[KWMBaseVC findControllerBy:[KWMSelectSizeVC kwmTag] fromStoryboard:@"ShopCart"];
// editVC.delegate = this;
// editVC.isShopcart = YES;
// editVC.product = product;
// editVC.shopCartModel = shopCartModel;
//
// editVC.view.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0];
// editVC.modalPresentationStyle = UIModalPresentationOverCurrentContext;
// editVC.providesPresentationContextTransitionStyle = YES;
// editVC.definesPresentationContext = YES;
// [self presentViewController:editVC animated:YES completion:nil];
// [this presentViewController:editVC animated:YES completion:nil];
}];
//下面這個方法在9.0的模擬器上嘗試發現失敗,8.0以下沒試過,不過官方模擬器都沒有8.0以下的可以下載了,也沒有支持的必要。
// }else{
// editVC.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
// self.view.window.rootViewController.modalPresentationStyle = UIModalPresentationCurrentContext;
// [self presentViewController:editVC animated:NO completion:nil];
// self.view.window.rootViewController.modalPresentationStyle = UIModalPresentationFullScreen;
// }
}
#pragma mark -- KWMSelectSizeVCDelegate
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment