@@ -136,6 +136,11 @@ final class EditorView: UIView, MovableViewCanvasDelegate, MediaPlayerViewDelega
136
136
137
137
weak var playerView : MediaPlayerView ?
138
138
139
+ var exportSize : CGSize {
140
+ let exportView = playerView ?? self
141
+ return CGSize ( width: exportView. bounds. width * exportView. contentScaleFactor, height: exportView. bounds. height * exportView. contentScaleFactor)
142
+ }
143
+
139
144
private let mainActionMode : MainActionMode
140
145
private let confirmButton = UIButton ( )
141
146
private let closeButton = UIButton ( )
@@ -190,10 +195,10 @@ final class EditorView: UIView, MovableViewCanvasDelegate, MediaPlayerViewDelega
190
195
private lazy var drawingCanvasConstraints : FullViewConstraints = {
191
196
return FullViewConstraints (
192
197
view: drawingCanvas,
193
- top: drawingCanvas. topAnchor. constraint ( equalTo: topAnchor) ,
194
- bottom: drawingCanvas. bottomAnchor. constraint ( equalTo: bottomAnchor) ,
195
- leading: drawingCanvas. leadingAnchor. constraint ( equalTo: leadingAnchor) ,
196
- trailing: drawingCanvas. trailingAnchor. constraint ( equalTo: trailingAnchor)
198
+ top: drawingCanvas. topAnchor. constraint ( equalTo: playerView ? . topAnchor ?? topAnchor) ,
199
+ bottom: drawingCanvas. bottomAnchor. constraint ( equalTo: playerView ? . bottomAnchor ?? bottomAnchor) ,
200
+ leading: drawingCanvas. leadingAnchor. constraint ( equalTo: playerView ? . leadingAnchor ?? leadingAnchor) ,
201
+ trailing: drawingCanvas. trailingAnchor. constraint ( equalTo: playerView ? . trailingAnchor ?? trailingAnchor)
197
202
)
198
203
} ( )
199
204
@@ -202,10 +207,10 @@ final class EditorView: UIView, MovableViewCanvasDelegate, MediaPlayerViewDelega
202
207
private lazy var movableViewCanvasConstraints = {
203
208
return FullViewConstraints (
204
209
view: movableViewCanvas,
205
- top: movableViewCanvas. topAnchor. constraint ( equalTo: topAnchor) ,
206
- bottom: movableViewCanvas. bottomAnchor. constraint ( equalTo: bottomAnchor) ,
207
- leading: movableViewCanvas. leadingAnchor. constraint ( equalTo: leadingAnchor) ,
208
- trailing: movableViewCanvas. trailingAnchor. constraint ( equalTo: trailingAnchor)
210
+ top: movableViewCanvas. topAnchor. constraint ( equalTo: playerView ? . topAnchor ?? topAnchor) ,
211
+ bottom: movableViewCanvas. bottomAnchor. constraint ( equalTo: playerView ? . bottomAnchor ?? bottomAnchor) ,
212
+ leading: movableViewCanvas. leadingAnchor. constraint ( equalTo: playerView ? . leadingAnchor ?? leadingAnchor) ,
213
+ trailing: movableViewCanvas. trailingAnchor. constraint ( equalTo: playerView ? . trailingAnchor ?? trailingAnchor)
209
214
)
210
215
} ( )
211
216
@@ -225,6 +230,7 @@ final class EditorView: UIView, MovableViewCanvasDelegate, MediaPlayerViewDelega
225
230
226
231
weak var delegate : EditorViewDelegate ?
227
232
private var mediaContentMode : UIView . ContentMode
233
+ private var aspectRatio : CGFloat ?
228
234
229
235
@available ( * , unavailable, message: " use init() instead " )
230
236
required public init ? ( coder aDecoder: NSCoder ) {
@@ -242,6 +248,7 @@ final class EditorView: UIView, MovableViewCanvasDelegate, MediaPlayerViewDelega
242
248
showQuickPostButton: Bool ,
243
249
showBlogSwitcher: Bool ,
244
250
confirmAtTop: Bool ,
251
+ aspectRatio: CGFloat ? ,
245
252
quickBlogSelectorCoordinator: KanvasQuickBlogSelectorCoordinating ? ,
246
253
tagCollection: UIView ? ,
247
254
metalContext: MetalContext ? ,
@@ -258,6 +265,7 @@ final class EditorView: UIView, MovableViewCanvasDelegate, MediaPlayerViewDelega
258
265
self . showQuickPostButton = showQuickPostButton
259
266
self . showBlogSwitcher = showBlogSwitcher
260
267
self . confirmAtTop = confirmAtTop
268
+ self . aspectRatio = aspectRatio
261
269
self . quickBlogSelectorCoordinator = quickBlogSelectorCoordinator
262
270
self . tagCollection = tagCollection
263
271
self . metalContext = metalContext
@@ -330,7 +338,35 @@ final class EditorView: UIView, MovableViewCanvasDelegate, MediaPlayerViewDelega
330
338
private func setupPlayer( ) {
331
339
let playerView = MediaPlayerView ( metalContext: metalContext, mediaContentMode: mediaContentMode)
332
340
playerView. delegate = self
333
- playerView. add ( into: self )
341
+
342
+ if let aspectRatio = aspectRatio {
343
+ playerView. layer. masksToBounds = true
344
+ playerView. layer. cornerRadius = 12
345
+ playerView. translatesAutoresizingMaskIntoConstraints = false
346
+ self . addSubview ( playerView)
347
+
348
+ let bottomConstraint : NSLayoutConstraint
349
+ let topConstraint : NSLayoutConstraint
350
+ if Device . belongsToIPhoneXGroup {
351
+ bottomConstraint = playerView. bottomAnchor. constraint ( equalTo: safeAreaLayoutGuide. bottomAnchor)
352
+ topConstraint = playerView. topAnchor. constraint ( equalTo: safeAreaLayoutGuide. topAnchor)
353
+ } else {
354
+ bottomConstraint = playerView. bottomAnchor. constraint ( equalTo: bottomAnchor)
355
+ topConstraint = playerView. topAnchor. constraint ( equalTo: topAnchor)
356
+ }
357
+ NSLayoutConstraint . activate ( [
358
+ playerView. centerXAnchor. constraint ( equalTo: centerXAnchor) ,
359
+ playerView. leadingAnchor. constraint ( greaterThanOrEqualTo: leadingAnchor) ,
360
+ playerView. trailingAnchor. constraint ( lessThanOrEqualTo: trailingAnchor) ,
361
+ playerView. widthAnchor. constraint ( equalTo: playerView. heightAnchor, multiplier: aspectRatio, constant: 0 ) ,
362
+ topConstraint,
363
+ bottomConstraint,
364
+ playerView. bottomAnchor. constraint ( lessThanOrEqualTo: bottomAnchor)
365
+ ] )
366
+ } else {
367
+ playerView. add ( into: self )
368
+ }
369
+
334
370
self . playerView = playerView
335
371
}
336
372
@@ -523,7 +559,7 @@ final class EditorView: UIView, MovableViewCanvasDelegate, MediaPlayerViewDelega
523
559
524
560
let verticalPositioning : [ NSLayoutConstraint ]
525
561
if confirmAtTop {
526
- verticalPositioning = [ collectionContainer. bottomAnchor. constraint ( equalTo: safeAreaLayoutGuide. bottomAnchor) ]
562
+ verticalPositioning = [ collectionContainer. bottomAnchor. constraint ( equalTo: safeAreaLayoutGuide. bottomAnchor, constant : - KanvasEditorDesign . shared . editorViewButtonBottomMargin ) ]
527
563
} else {
528
564
verticalPositioning = [ collectionContainer. centerYAnchor. constraint ( equalTo: confirmOrPostButton ( ) . centerYAnchor) ]
529
565
}
@@ -563,10 +599,10 @@ final class EditorView: UIView, MovableViewCanvasDelegate, MediaPlayerViewDelega
563
599
564
600
addSubview ( textMenuContainer)
565
601
NSLayoutConstraint . activate ( [
566
- textMenuContainer. leadingAnchor. constraint ( equalTo: leadingAnchor) ,
567
- textMenuContainer. trailingAnchor. constraint ( equalTo: trailingAnchor) ,
568
- textMenuContainer. topAnchor. constraint ( equalTo: topAnchor) ,
569
- textMenuContainer. bottomAnchor. constraint ( equalTo: bottomAnchor)
602
+ textMenuContainer. leadingAnchor. constraint ( equalTo: playerView ? . leadingAnchor ?? leadingAnchor) ,
603
+ textMenuContainer. trailingAnchor. constraint ( equalTo: playerView ? . trailingAnchor ?? trailingAnchor) ,
604
+ textMenuContainer. topAnchor. constraint ( equalTo: playerView ? . topAnchor ?? topAnchor) ,
605
+ textMenuContainer. bottomAnchor. constraint ( equalTo: playerView ? . bottomAnchor ?? bottomAnchor)
570
606
] )
571
607
}
572
608
@@ -578,10 +614,10 @@ final class EditorView: UIView, MovableViewCanvasDelegate, MediaPlayerViewDelega
578
614
addSubview ( drawingMenuContainer)
579
615
drawingMenuContainer. translatesAutoresizingMaskIntoConstraints = false
580
616
NSLayoutConstraint . activate ( [
581
- drawingMenuContainer. leadingAnchor. constraint ( equalTo: leadingAnchor) ,
582
- drawingMenuContainer. trailingAnchor. constraint ( equalTo: trailingAnchor) ,
583
- drawingMenuContainer. topAnchor. constraint ( equalTo: topAnchor) ,
584
- drawingMenuContainer. bottomAnchor. constraint ( equalTo: bottomAnchor)
617
+ drawingMenuContainer. leadingAnchor. constraint ( equalTo: playerView ? . leadingAnchor ?? leadingAnchor) ,
618
+ drawingMenuContainer. trailingAnchor. constraint ( equalTo: playerView ? . trailingAnchor ?? trailingAnchor) ,
619
+ drawingMenuContainer. topAnchor. constraint ( equalTo: playerView ? . topAnchor ?? topAnchor) ,
620
+ drawingMenuContainer. bottomAnchor. constraint ( equalTo: playerView ? . bottomAnchor ?? bottomAnchor)
585
621
] )
586
622
}
587
623
0 commit comments