質問編集履歴

1

CustomLabelClassの追記

2016/05/24 01:25

投稿

label8
label8

スコア16

test CHANGED
File without changes
test CHANGED
@@ -159,3 +159,97 @@
159
159
  }
160
160
 
161
161
  ```
162
+
163
+
164
+
165
+ 追記:
166
+
167
+ ご指摘のあったCustomLabelClass.swiftの内容を載せてみました。
168
+
169
+ 内容は、個々でラベルのコーナーをラウンドさせるための処理になります。
170
+
171
+ ```swift
172
+
173
+ class CustomLabelClass: UILabel {
174
+
175
+
176
+
177
+ var corners: UIRectCorner = [.TopLeft, .TopRight, .BottomLeft, .BottomRight]
178
+
179
+ var radius: CGFloat = 0
180
+
181
+
182
+
183
+ var padding: UIEdgeInsets = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0)
184
+
185
+
186
+
187
+ func setPadding(pt:CGFloat, pr:CGFloat, pb:CGFloat, pl:CGFloat) {
188
+
189
+ self.padding = UIEdgeInsets(top: pt, left: pl, bottom: pb, right: pr)
190
+
191
+ }
192
+
193
+
194
+
195
+ override func drawTextInRect(rect: CGRect) {
196
+
197
+ let newRect = UIEdgeInsetsInsetRect(rect, padding)
198
+
199
+ super.drawTextInRect(newRect)
200
+
201
+ }
202
+
203
+
204
+
205
+ override func intrinsicContentSize() -> CGSize {
206
+
207
+ var intrinsicContentSize = super.intrinsicContentSize()
208
+
209
+ intrinsicContentSize.height += padding.top + padding.bottom
210
+
211
+ intrinsicContentSize.width += padding.left + padding.right
212
+
213
+ return intrinsicContentSize
214
+
215
+ }
216
+
217
+
218
+
219
+ func setCornersAndRadius(corners:UIRectCorner, radius: CGFloat) {
220
+
221
+ self.corners = corners
222
+
223
+ self.radius = radius
224
+
225
+ }
226
+
227
+
228
+
229
+ override func layoutSubviews() {
230
+
231
+ super.layoutSubviews()
232
+
233
+ let maskPath = UIBezierPath(roundedRect: self.bounds,
234
+
235
+ byRoundingCorners: self.corners,
236
+
237
+ cornerRadii: CGSize(width: self.radius, height: self.radius))
238
+
239
+
240
+
241
+ let maskLayer = CAShapeLayer()
242
+
243
+ maskLayer.frame = self.bounds
244
+
245
+ maskLayer.path = maskPath.CGPath
246
+
247
+
248
+
249
+ self.layer.mask = maskLayer
250
+
251
+ }
252
+
253
+ }
254
+
255
+ ```