我正在尝试更新UIView
其中包含按钮和标签的框架.我想在更新它viewDidLayoutSubviews
(我也试过viewDidLoad
,viewWillAppear
,viewDidAppear
...).我想改变视图的y位置(origin.y).NSLogs说我的原始y位置是334,并且在更改之后,它是100.但是,在我看来,位置不会改变.我已经检查过故事板中的视图已连接.我究竟做错了什么?
-(void)viewDidLayoutSubviews
{
[super viewDidLayoutSubviews];
CGRect theFrame = [self.bottomView frame];
NSLog(@"Y position bottomview: %f", self.bottomView.frame.origin.y);
if([[UIScreen mainScreen] bounds].size.height == 568) //iPhone 4inch
{
// NSLog(@"iphone5");
}
else{
// NSLog(@"iphone4");
theFrame .origin.y = 100;
}
self.bottomView.frame = theFrame;
NSLog(@"Y position bottomview after changing it: %f", self.bottomView.frame.origin.y);
[self.view layoutIfNeeded];
}
Run Code Online (Sandbox Code Playgroud) 我基本上是在回答这个问题AVCaptureVideoPreviewLayer方向 -除了在Swift中需要景观.
我的目标是iOS 8,而AVCaptureVideoPreviewLayer似乎没有setVideoOrientation功能.
我应该如何检测方向已更改,并正确旋转AVCaptureVideoPreviewLayer?
我有一个允许用户拍照的视图控制器。我将 avcapture 边界设置为屏幕上视图的边界。
在此视图上方,我有一个集合视图。因此用户可以捕获多张图片,然后将它们添加到上面的集合视图中。
我在上面的预览中出现正确的方向时遇到了问题。
代码如下:
@IBOutlet weak var imagePreviews: UICollectionView!
@IBOutlet weak var imgPreview: UIView!
var session: AVCaptureSession?
var stillImageOutput: AVCaptureStillImageOutput?
var videoPreviewLayer: AVCaptureVideoPreviewLayer?
var images: [UIImage] = [UIImage]()
var isLandscapeLeft : Bool = false
var isLandscapeRight : Bool = false
var isPortrait : Bool = false
var isPortraitUpsideDown: Bool = false
@IBAction func capture(_ sender: UIButton)
{
if let videoConnection = stillImageOutput?.connection(withMediaType: AVMediaTypeVideo)
{
stillImageOutput?.captureStillImageAsynchronously(from: videoConnection, completionHandler: { (sampleBuffer, error) in
if sampleBuffer != nil {
if let …
Run Code Online (Sandbox Code Playgroud)