Toggle navigation
Toggle navigation
This project
Loading...
Sign in
open-source
/
warply_sdk_framework
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Graphs
Network
Create a new issue
Commits
Issue Boards
Authored by
Manos Chorianopoulos
2026-03-13 15:22:17 +0200
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
aa4e6ef156cb61ae5018d0c84471e4aa91c840de
aa4e6ef1
1 parent
c74de554
MyRewardsProfileInfoTableViewCell redesign
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
128 additions
and
152 deletions
SwiftWarplyFramework/SwiftWarplyFramework.xcworkspace/xcuserdata/manoschorianopoulos.xcuserdatad/UserInterfaceState.xcuserstate
SwiftWarplyFramework/SwiftWarplyFramework/cells/MyRewardsProfileInfoTableViewCell/MyRewardsProfileInfoTableViewCell.swift
SwiftWarplyFramework/SwiftWarplyFramework/cells/MyRewardsProfileInfoTableViewCell/MyRewardsProfileInfoTableViewCell.xib
SwiftWarplyFramework/SwiftWarplyFramework.xcworkspace/xcuserdata/manoschorianopoulos.xcuserdatad/UserInterfaceState.xcuserstate
View file @
aa4e6ef
No preview for this file type
SwiftWarplyFramework/SwiftWarplyFramework/cells/MyRewardsProfileInfoTableViewCell/MyRewardsProfileInfoTableViewCell.swift
View file @
aa4e6ef
...
...
@@ -13,107 +13,144 @@ protocol MyRewardsProfileInfoTableViewCellDelegate: AnyObject {
@objc(MyRewardsProfileInfoTableViewCell)
public
class
MyRewardsProfileInfoTableViewCell
:
UITableViewCell
{
@IBOutlet
weak
var
tagView1
:
UIView
!
@IBOutlet
weak
var
tagLabel1
:
UILabel
!
@IBOutlet
weak
var
tagView2
:
UIView
!
@IBOutlet
weak
var
tagLabel2
:
UILabel
!
@IBOutlet
weak
var
profileImage
:
UIImageView
!
// MARK: - IBOutlets
/// Bold "Rewards" title label (top-left)
@IBOutlet
weak
var
titleLabel
:
UILabel
!
/// Horizontally scrollable container for tag pills
@IBOutlet
weak
var
tagsScrollView
:
UIScrollView
!
/// Horizontal stack view inside the scroll view; tag pill views are added here dynamically
@IBOutlet
weak
var
tagsStackView
:
UIStackView
!
/// Settings / gear button (top-right)
@IBOutlet
weak
var
profileButton
:
UIButton
!
// MARK: - Delegate
weak
var
delegate
:
MyRewardsProfileInfoTableViewCellDelegate
?
// MARK: - Properties
// MARK: - Private
private
var
profileModel
:
ProfileModel
?
// MARK: - Lifecycle
public
override
func
awakeFromNib
()
{
super
.
awakeFromNib
()
// Initialization code
profileImage
.
image
=
UIImage
(
named
:
"profile_pic_default"
,
in
:
Bundle
.
frameworkResourceBundle
,
compatibleWith
:
nil
)
selectionStyle
=
.
none
profileButton
.
addTarget
(
self
,
action
:
#selector(
profileButtonTapped
)
,
for
:
.
touchUpInside
)
// Title
titleLabel
.
font
=
UIFont
(
name
:
"PingLCG-Bold"
,
size
:
26
)
??
UIFont
.
boldSystemFont
(
ofSize
:
26
)
titleLabel
.
textColor
=
UIColor
(
rgb
:
0x1D2023
)
titleLabel
.
text
=
"Rewards"
tagView1
.
backgroundColor
=
UIColor
(
rgb
:
0x09914E
)
tagView1
.
layer
.
cornerRadius
=
4.0
tagLabel1
.
font
=
UIFont
(
name
:
"PingLCG-Regular"
,
size
:
17
)
tagLabel1
.
textColor
=
UIColor
(
rgb
:
0xFFFFFF
)
// Gear button: render image as-is (no tint) so the gray circle style is preserved
let
gearImage
=
UIImage
(
named
:
"settings_circle"
,
in
:
Bundle
.
frameworkResourceBundle
,
compatibleWith
:
nil
)?
.
withRenderingMode
(
.
alwaysOriginal
)
profileButton
.
setImage
(
gearImage
,
for
:
.
normal
)
profileButton
.
setTitle
(
""
,
for
:
.
normal
)
profileButton
.
addTarget
(
self
,
action
:
#selector(
profileButtonTapped
)
,
for
:
.
touchUpInside
)
tagView2
.
backgroundColor
=
UIColor
(
rgb
:
0xFC9F25
)
tagView2
.
layer
.
cornerRadius
=
4.0
tagLabel2
.
font
=
UIFont
(
name
:
"PingLCG-Regular"
,
size
:
17
)
tagLabel2
.
textColor
=
UIColor
(
rgb
:
0xFFFFFF
)
// Tags scroll view
tagsScrollView
.
showsHorizontalScrollIndicator
=
false
tagsScrollView
.
showsVerticalScrollIndicator
=
false
// Tags stack view
tagsStackView
.
axis
=
.
horizontal
tagsStackView
.
spacing
=
9
tagsStackView
.
alignment
=
.
center
tagsStackView
.
distribution
=
.
fill
}
public
override
func
setSelected
(
_
selected
:
Bool
,
animated
:
Bool
)
{
super
.
setSelected
(
selected
,
animated
:
animated
)
}
// Configure the view for the selected state
public
override
func
prepareForReuse
()
{
super
.
prepareForReuse
()
clearTags
()
}
// MARK: - Actions
@objc
private
func
profileButtonTapped
()
{
delegate
?
.
didTapProfileButton
()
}
// MARK: - Configuration
Methods
// MARK: - Configuration
public
func
configureCell
(
data
:
SectionModel
?)
{
guard
let
data
=
data
,
let
itemType
=
data
.
itemType
,
itemType
==
.
profile
else
{
data
.
sectionType
==
.
myRewardsProfileInfo
else
{
configureDefaultState
()
return
}
// Check if we have real profile data
if
let
metadata
=
data
.
metadata
,
let
profile
=
metadata
[
"profile"
]
as?
ProfileModel
{
// Configure with real profile data
configureCell
(
profile
:
profile
)
}
else
{
// Configure with default state (no profile data)
configureDefaultState
()
}
}
public
func
configureCell
(
profile
:
ProfileModel
)
{
self
.
profileModel
=
profile
// TODO: Configure tag labels with profile data
// We need to determine what data should populate tagView1 and tagView2
// Possible options from ProfileModel:
// - _user_points (loyalty points)
// - _badge (user badge/tier)
// - _verified (verification status)
// - Custom business logic based on profile data
// For now, keep tags visible with current static styling
tagView1
.
isHidden
=
false
tagView2
.
isHidden
=
false
// Load profile image if available
if
!
profile
.
_image_url
.
isEmpty
{
loadProfileImage
(
from
:
profile
.
_image_url
)
}
else
{
profileImage
.
image
=
UIImage
(
named
:
"profile_pic_default"
,
in
:
Bundle
.
frameworkResourceBundle
,
compatibleWith
:
nil
)
}
populateTags
(
segments
:
profile
.
_user_segments
)
}
private
func
configureDefaultState
()
{
// Default state: no profile data available
self
.
profileModel
=
nil
clearTags
()
}
// Keep tags visible even in default state
tagView1
.
isHidden
=
false
tagView2
.
isHidden
=
false
// MARK: - Tag Helpers
profileImage
.
image
=
UIImage
(
named
:
"profile_pic_default"
,
in
:
Bundle
.
frameworkResourceBundle
,
compatibleWith
:
nil
)
/// Removes all tag pill views from the stack view.
private
func
clearTags
()
{
tagsStackView
.
arrangedSubviews
.
forEach
{
$0
.
removeFromSuperview
()
}
}
private
func
loadProfileImage
(
from
urlString
:
String
)
{
// For now, use default image - can be enhanced later with URL loading
profileImage
.
image
=
UIImage
(
named
:
"profile_pic_default"
,
in
:
Bundle
.
frameworkResourceBundle
,
compatibleWith
:
nil
)
/// Creates one pill view per segment string and adds them to the stack view.
private
func
populateTags
(
segments
:
[
String
])
{
clearTags
()
for
segment
in
segments
where
!
segment
.
isEmpty
{
let
pill
=
makePillView
(
text
:
segment
)
tagsStackView
.
addArrangedSubview
(
pill
)
}
}
// TODO: Add dynamic profile picture and tags
/// Builds a rounded pill view with the given text.
private
func
makePillView
(
text
:
String
)
->
UIView
{
let
container
=
UIView
()
container
.
backgroundColor
=
UIColor
(
rgb
:
0xF1F2F4
)
container
.
layer
.
cornerRadius
=
13
container
.
clipsToBounds
=
true
let
label
=
UILabel
()
label
.
text
=
text
label
.
font
=
UIFont
(
name
:
"PingLCG-Regular"
,
size
:
12
)
??
UIFont
.
systemFont
(
ofSize
:
12
)
label
.
textColor
=
UIColor
(
rgb
:
0x00111B
)
label
.
numberOfLines
=
1
label
.
translatesAutoresizingMaskIntoConstraints
=
false
container
.
addSubview
(
label
)
container
.
translatesAutoresizingMaskIntoConstraints
=
false
NSLayoutConstraint
.
activate
([
label
.
topAnchor
.
constraint
(
equalTo
:
container
.
topAnchor
,
constant
:
6
),
label
.
bottomAnchor
.
constraint
(
equalTo
:
container
.
bottomAnchor
,
constant
:
-
6
),
label
.
leadingAnchor
.
constraint
(
equalTo
:
container
.
leadingAnchor
,
constant
:
8
),
label
.
trailingAnchor
.
constraint
(
equalTo
:
container
.
trailingAnchor
,
constant
:
-
8
)
])
return
container
}
}
...
...
SwiftWarplyFramework/SwiftWarplyFramework/cells/MyRewardsProfileInfoTableViewCell/MyRewardsProfileInfoTableViewCell.xib
View file @
aa4e6ef
<?xml version="1.0" encoding="UTF-8"?>
<document
type=
"com.apple.InterfaceBuilder3.CocoaTouch.XIB"
version=
"3.0"
toolsVersion=
"2
3094
"
targetRuntime=
"iOS.CocoaTouch"
propertyAccessControl=
"none"
useAutolayout=
"YES"
useTraitCollections=
"YES"
useSafeAreas=
"YES"
colorMatched=
"YES"
>
<document
type=
"com.apple.InterfaceBuilder3.CocoaTouch.XIB"
version=
"3.0"
toolsVersion=
"2
4506
"
targetRuntime=
"iOS.CocoaTouch"
propertyAccessControl=
"none"
useAutolayout=
"YES"
useTraitCollections=
"YES"
useSafeAreas=
"YES"
colorMatched=
"YES"
>
<device
id=
"retina6_12"
orientation=
"portrait"
appearance=
"light"
/>
<dependencies>
<plugIn
identifier=
"com.apple.InterfaceBuilder.IBCocoaTouchPlugin"
version=
"2
308
4"
/>
<plugIn
identifier=
"com.apple.InterfaceBuilder.IBCocoaTouchPlugin"
version=
"2
450
4"
/>
<capability
name=
"Safe area layout guides"
minToolsVersion=
"9.0"
/>
<capability
name=
"documents saved in the Xcode 8 format"
minToolsVersion=
"8.0"
/>
</dependencies>
<objects>
<placeholder
placeholderIdentifier=
"IBFilesOwner"
id=
"-1"
userLabel=
"File's Owner"
/>
<placeholder
placeholderIdentifier=
"IBFirstResponder"
id=
"-2"
customClass=
"UIResponder"
/>
<tableViewCell
contentMode=
"scaleToFill"
selectionStyle=
"
default"
indentationWidth=
"10"
reuseIdentifier=
"MyRewardsProfileInfoTableViewCell"
rowHeight=
"141
"
id=
"KGk-i7-Jjw"
customClass=
"MyRewardsProfileInfoTableViewCell"
>
<rect
key=
"frame"
x=
"0.0"
y=
"0.0"
width=
"3
18"
height=
"141
"
/>
<tableViewCell
contentMode=
"scaleToFill"
selectionStyle=
"
none"
indentationWidth=
"10"
reuseIdentifier=
"MyRewardsProfileInfoTableViewCell
"
id=
"KGk-i7-Jjw"
customClass=
"MyRewardsProfileInfoTableViewCell"
>
<rect
key=
"frame"
x=
"0.0"
y=
"0.0"
width=
"3
75"
height=
"100
"
/>
<autoresizingMask
key=
"autoresizingMask"
flexibleMaxX=
"YES"
flexibleMaxY=
"YES"
/>
<tableViewCellContentView
key=
"contentView"
opaque=
"NO"
clipsSubviews=
"YES"
multipleTouchEnabled=
"YES"
contentMode=
"center"
tableViewCell=
"KGk-i7-Jjw"
id=
"H2p-sc-9uM"
>
<rect
key=
"frame"
x=
"0.0"
y=
"0.0"
width=
"3
18"
height=
"141
"
/>
<rect
key=
"frame"
x=
"0.0"
y=
"0.0"
width=
"3
75"
height=
"100
"
/>
<autoresizingMask
key=
"autoresizingMask"
/>
<subviews>
<view
contentMode=
"scaleToFill"
translatesAutoresizingMaskIntoConstraints=
"NO"
id=
"GrG-Na-dBF"
userLabel=
"Parent View"
>
<rect
key=
"frame"
x=
"0.0"
y=
"0.0"
width=
"318"
height=
"130.33333333333334"
/>
<subviews>
<view
contentMode=
"scaleToFill"
translatesAutoresizingMaskIntoConstraints=
"NO"
id=
"Uzq-sj-DeG"
userLabel=
"Top View"
>
<rect
key=
"frame"
x=
"24"
y=
"35.999999999999993"
width=
"270"
height=
"94.333333333333314"
/>
<subviews>
<view
contentMode=
"scaleToFill"
translatesAutoresizingMaskIntoConstraints=
"NO"
id=
"iZR-9I-qrq"
>
<rect
key=
"frame"
x=
"0.0"
y=
"34.333333333333329"
width=
"58"
height=
"26"
/>
<subviews>
<label
opaque=
"NO"
userInteractionEnabled=
"NO"
contentMode=
"left"
horizontalHuggingPriority=
"251"
verticalHuggingPriority=
"251"
text=
"Green"
textAlignment=
"natural"
lineBreakMode=
"tailTruncation"
baselineAdjustment=
"alignBaselines"
adjustsFontSizeToFit=
"NO"
translatesAutoresizingMaskIntoConstraints=
"NO"
id=
"HbR-qg-oZj"
>
<rect
key=
"frame"
x=
"6"
y=
"3"
width=
"46"
height=
"20"
/>
<label
opaque=
"NO"
userInteractionEnabled=
"NO"
contentMode=
"left"
horizontalHuggingPriority=
"251"
verticalHuggingPriority=
"251"
text=
"Rewards"
textAlignment=
"natural"
lineBreakMode=
"middleTruncation"
baselineAdjustment=
"alignBaselines"
adjustsFontSizeToFit=
"NO"
translatesAutoresizingMaskIntoConstraints=
"NO"
id=
"Ttl-lb-001"
userLabel=
"TitleLabel"
>
<rect
key=
"frame"
x=
"17.999999999999993"
y=
"24"
width=
"109.33333333333331"
height=
"24"
/>
<color
key=
"backgroundColor"
white=
"0.0"
alpha=
"0.0"
colorSpace=
"custom"
customColorSpace=
"genericGamma22GrayColorSpace"
/>
<fontDescription
key=
"fontDescription"
name=
"HelveticaNeue"
family=
"Helvetica Neue"
pointSize=
"17
"
/>
<nil
key=
"textColor
"
/>
<fontDescription
key=
"fontDescription"
name=
"HelveticaNeue-Bold"
family=
"Helvetica Neue"
pointSize=
"26
"
/>
<color
key=
"textColor"
red=
"0.067000000000000004"
green=
"0.067000000000000004"
blue=
"0.067000000000000004"
alpha=
"1"
colorSpace=
"calibratedRGB
"
/>
<nil
key=
"highlightedColor"
/>
</label>
</subviews>
<color
key=
"backgroundColor"
red=
"0.035294117649999998"
green=
"0.56862745100000001"
blue=
"0.30588235289999999"
alpha=
"1"
colorSpace=
"calibratedRGB"
/>
<constraints>
<constraint
firstAttribute=
"trailing"
secondItem=
"HbR-qg-oZj"
secondAttribute=
"trailing"
constant=
"6"
id=
"D5p-jO-24v"
/>
<constraint
firstItem=
"HbR-qg-oZj"
firstAttribute=
"leading"
secondItem=
"iZR-9I-qrq"
secondAttribute=
"leading"
constant=
"6"
id=
"LFh-ia-T2B"
/>
<constraint
firstItem=
"HbR-qg-oZj"
firstAttribute=
"top"
secondItem=
"iZR-9I-qrq"
secondAttribute=
"top"
constant=
"3"
id=
"RhN-3V-CNu"
/>
<constraint
firstAttribute=
"bottom"
secondItem=
"HbR-qg-oZj"
secondAttribute=
"bottom"
constant=
"3"
id=
"aPc-Uy-H9c"
/>
</constraints>
</view>
<view
contentMode=
"scaleToFill"
translatesAutoresizingMaskIntoConstraints=
"NO"
id=
"uq8-95-vyl"
>
<rect
key=
"frame"
x=
"66"
y=
"34.333333333333329"
width=
"61.666666666666657"
height=
"26"
/>
<subviews>
<label
opaque=
"NO"
userInteractionEnabled=
"NO"
contentMode=
"left"
horizontalHuggingPriority=
"251"
verticalHuggingPriority=
"251"
text=
"Family"
textAlignment=
"natural"
lineBreakMode=
"tailTruncation"
baselineAdjustment=
"alignBaselines"
adjustsFontSizeToFit=
"NO"
translatesAutoresizingMaskIntoConstraints=
"NO"
id=
"UDU-LU-kJf"
>
<rect
key=
"frame"
x=
"6"
y=
"3"
width=
"49.666666666666664"
height=
"20"
/>
<color
key=
"backgroundColor"
white=
"0.0"
alpha=
"0.0"
colorSpace=
"custom"
customColorSpace=
"genericGamma22GrayColorSpace"
/>
<fontDescription
key=
"fontDescription"
name=
"HelveticaNeue"
family=
"Helvetica Neue"
pointSize=
"17"
/>
<nil
key=
"textColor"
/>
<nil
key=
"highlightedColor"
/>
</label>
</subviews>
<color
key=
"backgroundColor"
red=
"0.98823529409999999"
green=
"0.62352941179999999"
blue=
"0.1450980392"
alpha=
"1"
colorSpace=
"calibratedRGB"
/>
<constraints>
<constraint
firstAttribute=
"trailing"
secondItem=
"UDU-LU-kJf"
secondAttribute=
"trailing"
constant=
"6"
id=
"Ann-r9-abe"
/>
<constraint
firstItem=
"UDU-LU-kJf"
firstAttribute=
"top"
secondItem=
"uq8-95-vyl"
secondAttribute=
"top"
constant=
"3"
id=
"cUu-IO-JNt"
/>
<constraint
firstAttribute=
"bottom"
secondItem=
"UDU-LU-kJf"
secondAttribute=
"bottom"
constant=
"3"
id=
"dIU-Z8-BrZ"
/>
<constraint
firstItem=
"UDU-LU-kJf"
firstAttribute=
"leading"
secondItem=
"uq8-95-vyl"
secondAttribute=
"leading"
constant=
"6"
id=
"vb0-4P-dZE"
/>
</constraints>
</view>
<view
contentMode=
"scaleToFill"
translatesAutoresizingMaskIntoConstraints=
"NO"
id=
"D1N-l1-zYb"
>
<rect
key=
"frame"
x=
"227"
y=
"0.0"
width=
"43"
height=
"94.333333333333329"
/>
<subviews>
<imageView
clipsSubviews=
"YES"
userInteractionEnabled=
"NO"
contentMode=
"scaleAspectFit"
horizontalHuggingPriority=
"251"
verticalHuggingPriority=
"251"
translatesAutoresizingMaskIntoConstraints=
"NO"
id=
"ksj-lM-RAp"
>
<rect
key=
"frame"
x=
"0.0"
y=
"0.0"
width=
"43"
height=
"43"
/>
<color
key=
"backgroundColor"
white=
"0.0"
alpha=
"0.0"
colorSpace=
"custom"
customColorSpace=
"genericGamma22GrayColorSpace"
/>
<constraints>
<constraint
firstAttribute=
"width"
constant=
"43"
id=
"MsB-3N-rp3"
/>
<constraint
firstAttribute=
"height"
constant=
"43"
id=
"UVr-zI-nCH"
/>
</constraints>
</imageView>
<button
opaque=
"NO"
contentMode=
"scaleToFill"
contentHorizontalAlignment=
"center"
contentVerticalAlignment=
"center"
buttonType=
"system"
lineBreakMode=
"middleTruncation"
translatesAutoresizingMaskIntoConstraints=
"NO"
id=
"PEZ-e6-PaN"
userLabel=
"ProfileButton"
>
<rect
key=
"frame"
x=
"0.0"
y=
"0.0"
width=
"43"
height=
"94.333333333333329"
/>
<color
key=
"backgroundColor"
white=
"0.0"
alpha=
"0.0"
colorSpace=
"custom"
customColorSpace=
"genericGamma22GrayColorSpace"
/>
<state
key=
"normal"
title=
"Button"
/>
<buttonConfiguration
key=
"configuration"
style=
"plain"
title=
"Button"
>
<color
key=
"baseForegroundColor"
white=
"0.0"
alpha=
"0.0"
colorSpace=
"custom"
customColorSpace=
"genericGamma22GrayColorSpace"
/>
</buttonConfiguration>
</button>
</subviews>
<rect
key=
"frame"
x=
"309"
y=
"12"
width=
"48"
height=
"48"
/>
<color
key=
"backgroundColor"
white=
"0.0"
alpha=
"0.0"
colorSpace=
"custom"
customColorSpace=
"genericGamma22GrayColorSpace"
/>
<constraints>
<constraint
firstAttribute=
"trailing"
secondItem=
"PEZ-e6-PaN"
secondAttribute=
"trailing"
id=
"0Bs-BN-BYr"
/>
<constraint
firstItem=
"ksj-lM-RAp"
firstAttribute=
"top"
secondItem=
"D1N-l1-zYb"
secondAttribute=
"top"
id=
"72b-ae-wwu"
/>
<constraint
firstItem=
"PEZ-e6-PaN"
firstAttribute=
"leading"
secondItem=
"D1N-l1-zYb"
secondAttribute=
"leading"
id=
"JDf-Bc-agp"
/>
<constraint
firstAttribute=
"bottom"
secondItem=
"ksj-lM-RAp"
secondAttribute=
"bottom"
id=
"JVS-lc-V1a"
/>
<constraint
firstAttribute=
"bottom"
secondItem=
"PEZ-e6-PaN"
secondAttribute=
"bottom"
id=
"UsX-dl-5BF"
/>
<constraint
firstAttribute=
"trailing"
secondItem=
"ksj-lM-RAp"
secondAttribute=
"trailing"
id=
"VMk-Qb-GcZ"
/>
<constraint
firstItem=
"ksj-lM-RAp"
firstAttribute=
"leading"
secondItem=
"D1N-l1-zYb"
secondAttribute=
"leading"
id=
"noX-0V-w67"
/>
<constraint
firstItem=
"PEZ-e6-PaN"
firstAttribute=
"top"
secondItem=
"D1N-l1-zYb"
secondAttribute=
"top"
id=
"zU6-UR-WGM"
/>
<constraint
firstAttribute=
"height"
constant=
"48"
id=
"Btn-h-001"
/>
<constraint
firstAttribute=
"width"
constant=
"48"
id=
"Btn-w-001"
/>
</constraints>
</view>
</subviews>
<state
key=
"normal"
title=
""
/>
</button>
<scrollView
clipsSubviews=
"YES"
multipleTouchEnabled=
"YES"
contentMode=
"scaleToFill"
ambiguous=
"YES"
showsHorizontalScrollIndicator=
"NO"
showsVerticalScrollIndicator=
"NO"
translatesAutoresizingMaskIntoConstraints=
"NO"
id=
"Scr-tv-001"
userLabel=
"TagsScrollView"
>
<rect
key=
"frame"
x=
"24"
y=
"60"
width=
"279"
height=
"28"
/>
<subviews>
<stackView
opaque=
"NO"
contentMode=
"scaleToFill"
ambiguous=
"YES"
spacing=
"8"
translatesAutoresizingMaskIntoConstraints=
"NO"
id=
"Stk-tv-001"
userLabel=
"TagsStackView"
>
<rect
key=
"frame"
x=
"0.0"
y=
"0.0"
width=
"0.0"
height=
"28"
/>
<color
key=
"backgroundColor"
white=
"0.0"
alpha=
"0.0"
colorSpace=
"custom"
customColorSpace=
"genericGamma22GrayColorSpace"
/>
<constraints>
<constraint
firstItem=
"D1N-l1-zYb"
firstAttribute=
"top"
secondItem=
"Uzq-sj-DeG"
secondAttribute=
"top"
id=
"2Pg-pB-HXM"
/>
<constraint
firstAttribute=
"trailing"
secondItem=
"D1N-l1-zYb"
secondAttribute=
"trailing"
id=
"TIg-op-IhZ"
/>
<constraint
firstItem=
"iZR-9I-qrq"
firstAttribute=
"centerY"
secondItem=
"Uzq-sj-DeG"
secondAttribute=
"centerY"
id=
"Xj6-Va-Vu6"
/>
<constraint
firstItem=
"uq8-95-vyl"
firstAttribute=
"leading"
secondItem=
"iZR-9I-qrq"
secondAttribute=
"trailing"
constant=
"8"
id=
"cFB-Jw-8CI"
/>
<constraint
firstItem=
"uq8-95-vyl"
firstAttribute=
"centerY"
secondItem=
"Uzq-sj-DeG"
secondAttribute=
"centerY"
id=
"lpD-GB-qJb"
/>
<constraint
firstItem=
"iZR-9I-qrq"
firstAttribute=
"leading"
secondItem=
"Uzq-sj-DeG"
secondAttribute=
"leading"
id=
"nqO-fC-fCW"
/>
<constraint
firstItem=
"D1N-l1-zYb"
firstAttribute=
"leading"
relation=
"greaterThanOrEqual"
secondItem=
"uq8-95-vyl"
secondAttribute=
"trailing"
constant=
"8"
id=
"yWz-PS-7AW"
/>
<constraint
firstAttribute=
"bottom"
secondItem=
"D1N-l1-zYb"
secondAttribute=
"bottom"
id=
"zP0-l8-HZz"
/>
</constraints>
</view>
</stackView>
</subviews>
<color
key=
"backgroundColor"
white=
"0.0"
alpha=
"0.0"
colorSpace=
"custom"
customColorSpace=
"genericGamma22GrayColorSpace"
/>
<constraints>
<constraint
firstAttribute=
"trailing"
secondItem=
"Uzq-sj-DeG"
secondAttribute=
"trailing"
constant=
"24"
id=
"6Cb-JD-fEd"
/>
<constraint
firstItem=
"Uzq-sj-DeG"
firstAttribute=
"top"
secondItem=
"GrG-Na-dBF"
secondAttribute=
"top"
constant=
"36"
id=
"a4m-JH-bDa"
/>
<constraint
firstItem=
"Uzq-sj-DeG"
firstAttribute=
"leading"
secondItem=
"GrG-Na-dBF"
secondAttribute=
"leading"
constant=
"24"
id=
"bJt-81-pTc"
/>
<constraint
firstAttribute=
"bottom"
secondItem=
"Uzq-sj-DeG"
secondAttribute=
"bottom"
id=
"cjl-n6-BBf"
/>
<constraint
firstItem=
"Stk-tv-001"
firstAttribute=
"leading"
secondItem=
"Scr-tv-001"
secondAttribute=
"leading"
id=
"Scr-c-001"
/>
<constraint
firstItem=
"Stk-tv-001"
firstAttribute=
"trailing"
secondItem=
"Scr-tv-001"
secondAttribute=
"trailing"
id=
"Scr-c-002"
/>
<constraint
firstItem=
"Stk-tv-001"
firstAttribute=
"top"
secondItem=
"Scr-tv-001"
secondAttribute=
"top"
id=
"Scr-c-003"
/>
<constraint
firstItem=
"Stk-tv-001"
firstAttribute=
"bottom"
secondItem=
"Scr-tv-001"
secondAttribute=
"bottom"
id=
"Scr-c-004"
/>
<constraint
firstItem=
"Stk-tv-001"
firstAttribute=
"height"
secondItem=
"Scr-tv-001"
secondAttribute=
"height"
id=
"Scr-c-005"
/>
</constraints>
</
v
iew>
</
scrollV
iew>
</subviews>
<color
key=
"backgroundColor"
white=
"0.0"
alpha=
"0.0"
colorSpace=
"custom"
customColorSpace=
"genericGamma22GrayColorSpace"
/>
<constraints>
<constraint
firstItem=
"GrG-Na-dBF"
firstAttribute=
"leading"
secondItem=
"H2p-sc-9uM"
secondAttribute=
"leading"
id=
"6vh-eL-qMw"
/>
<constraint
firstAttribute=
"trailing"
secondItem=
"GrG-Na-dBF"
secondAttribute=
"trailing"
id=
"Mhv-wX-J42"
/>
<constraint
firstAttribute=
"bottom"
secondItem=
"GrG-Na-dBF"
secondAttribute=
"bottom"
id=
"WfG-lv-Uw7"
/>
<constraint
firstItem=
"GrG-Na-dBF"
firstAttribute=
"top"
secondItem=
"H2p-sc-9uM"
secondAttribute=
"top"
id=
"iSV-2N-pbv"
/>
<constraint
firstAttribute=
"trailing"
secondItem=
"PEZ-e6-PaN"
secondAttribute=
"trailing"
constant=
"18"
id=
"Con-btn-001"
/>
<constraint
firstItem=
"PEZ-e6-PaN"
firstAttribute=
"centerY"
secondItem=
"Ttl-lb-001"
secondAttribute=
"centerY"
id=
"Con-btn-002"
/>
<constraint
firstItem=
"Scr-tv-001"
firstAttribute=
"leading"
secondItem=
"H2p-sc-9uM"
secondAttribute=
"leading"
constant=
"18"
id=
"Con-scr-001"
/>
<constraint
firstItem=
"Scr-tv-001"
firstAttribute=
"top"
secondItem=
"Ttl-lb-001"
secondAttribute=
"bottom"
constant=
"12"
id=
"Con-scr-002"
/>
<constraint
firstItem=
"Scr-tv-001"
firstAttribute=
"height"
constant=
"28"
id=
"Con-scr-004"
/>
<constraint
firstAttribute=
"bottom"
secondItem=
"Scr-tv-001"
secondAttribute=
"bottom"
constant=
"12"
id=
"Con-scr-005"
/>
<constraint
firstItem=
"Ttl-lb-001"
firstAttribute=
"leading"
secondItem=
"H2p-sc-9uM"
secondAttribute=
"leading"
constant=
"18"
id=
"Con-tl-001"
/>
<constraint
firstItem=
"Ttl-lb-001"
firstAttribute=
"top"
secondItem=
"H2p-sc-9uM"
secondAttribute=
"top"
constant=
"24"
id=
"Con-tl-002"
/>
<constraint
firstItem=
"PEZ-e6-PaN"
firstAttribute=
"leading"
relation=
"greaterThanOrEqual"
secondItem=
"Ttl-lb-001"
secondAttribute=
"trailing"
constant=
"8"
id=
"Con-tl-003"
/>
<constraint
firstAttribute=
"trailing"
secondItem=
"Scr-tv-001"
secondAttribute=
"trailing"
constant=
"18"
id=
"SXS-cd-zKP"
/>
</constraints>
</tableViewCellContentView>
<viewLayoutGuide
key=
"safeArea"
id=
"njF-e1-oar"
/>
<color
key=
"backgroundColor"
white=
"0.0"
alpha=
"0.0"
colorSpace=
"custom"
customColorSpace=
"genericGamma22GrayColorSpace"
/>
<connections>
<outlet
property=
"profileButton"
destination=
"PEZ-e6-PaN"
id=
"FBL-8U-9OZ"
/>
<outlet
property=
"profileImage"
destination=
"ksj-lM-RAp"
id=
"lwv-9G-Mmy"
/>
<outlet
property=
"tagLabel1"
destination=
"HbR-qg-oZj"
id=
"Ggl-NO-w2a"
/>
<outlet
property=
"tagLabel2"
destination=
"UDU-LU-kJf"
id=
"Tc6-yb-xi1"
/>
<outlet
property=
"tagView1"
destination=
"iZR-9I-qrq"
id=
"EtM-Q0-Ru9"
/>
<outlet
property=
"tagView2"
destination=
"uq8-95-vyl"
id=
"mP6-vQ-GY6"
/>
<outlet
property=
"tagsScrollView"
destination=
"Scr-tv-001"
id=
"Out-scr-001"
/>
<outlet
property=
"tagsStackView"
destination=
"Stk-tv-001"
id=
"Out-stk-001"
/>
<outlet
property=
"titleLabel"
destination=
"Ttl-lb-001"
id=
"Out-tl-001"
/>
</connections>
<point
key=
"canvasLocation"
x=
"41.221374045801525"
y=
"29.929577464788736"
/>
</tableViewCell>
...
...
Please
register
or
login
to post a comment