FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
AsyncDisplayKit/AsyncDisplayKit/ASCellNode.m at master · willardLin/AsyncDisplayKit · GitHub
willardLin
/
AsyncDisplayKit
Public
forked from
facebookarchive/AsyncDisplayKit
Notifications
You must be signed in to change notification settings
Fork
0
Star
0
Code
Pull requests
0
Actions
Projects
Wiki
Security and quality
0
Insights
Additional navigation options
Code
Pull requests
Actions
Projects
Wiki
Security and quality
Insights
Expand file tree
Breadcrumbs
AsyncDisplayKit
/
AsyncDisplayKit
/
ASCellNode.m
Copy path
More file actions
More file actions
Latest commit
History
History
History
118 lines (85 loc) · 2.73 KB
Breadcrumbs
AsyncDisplayKit
/
AsyncDisplayKit
/
ASCellNode.m
Copy path
File metadata and controls
118 lines (85 loc) · 2.73 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
/*
Copyright (c) 2014-present, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*/
#
import
"
ASCellNode.h
"
#
import
"
ASDisplayNode+Subclasses.h
"
#
import
"
ASRangeControllerInternal.h
"
#
import
"
ASTextNode.h
"
#
pragma mark
-
#
pragma mark
ASCellNode
@interface
ASCellNode
() {
//
used by ASRangeController machinery
NSIndexPath
*_asyncdisplaykit_indexPath;
}
@end
@implementation
ASCellNode
- (
instancetype
)
init
{
if
(!(self = [
super
init
]))
return
nil
;
//
use UITableViewCell defaults
_selectionStyle = UITableViewCellSelectionStyleDefault;
return
self;
}
- (
void
)
setLayerBacked
:
(
BOOL
)
layerBacked
{
//
ASRangeController expects ASCellNodes to be view-backed. (Layer-backing is supported on ASCellNode subnodes.)
ASDisplayNodeAssert
(!layerBacked,
@"
ASCellNode does not support layer-backing.
"
);
}
//
TODO consider making this property an associated object in ASRangeController.mm
- (
NSIndexPath
*)
asyncdisplaykit_indexPath
{
return
_asyncdisplaykit_indexPath;
}
- (
void
)
setAsyncdisplaykit_indexPath
:
(
NSIndexPath
*)
asyncdisplaykit_indexPath
{
if
(_asyncdisplaykit_indexPath == asyncdisplaykit_indexPath)
return
;
_asyncdisplaykit_indexPath = [asyncdisplaykit_indexPath
copy
];
}
@end
#
pragma mark
-
#
pragma mark
ASTextCellNode
@interface
ASTextCellNode
() {
NSString
*_text;
ASTextNode *_textNode;
}
@end
@implementation
ASTextCellNode
static
const
CGFloat
kHorizontalPadding
=
15
.
0f
;
static
const
CGFloat
kVerticalPadding
=
11
.
0f
;
static
const
CGFloat
kFontSize
=
18
.
0f
;
- (
instancetype
)
init
{
if
(!(self = [
super
init
]))
return
nil
;
_textNode = [[ASTextNode
alloc
]
init
];
[
self
addSubnode:
_textNode];
return
self;
}
- (CGSize)
calculateSizeThatFits
:
(CGSize)
constrainedSize
{
CGSize availableSize =
CGSizeMake
(constrainedSize.
width
-
2
*
kHorizontalPadding
,
constrainedSize.
height
-
2
*
kVerticalPadding
);
CGSize textNodeSize = [_textNode
measure:
availableSize];
return
CGSizeMake
(
ceilf
(
2
*
kHorizontalPadding
+ textNodeSize.
width
),
ceilf
(
2
*
kVerticalPadding
+ textNodeSize.
height
));
}
- (
void
)
layout
{
_textNode.
frame
=
CGRectInset
(self.
bounds
,
kHorizontalPadding
,
kVerticalPadding
);
}
- (
void
)
setText
:
(
NSString
*)
text
{
if
(_text == text)
return
;
_text = [text
copy
];
_textNode.
attributedString
= [[
NSAttributedString
alloc
]
initWithString:
_text
attributes:
@{
NSFontAttributeName
: [UIFont
systemFontOfSize:
kFontSize
]}];
[
self
invalidateCalculatedSize
];
}
@end
Back
|
FazBrowse Home
|
New Git URL