相关疑难解决方法(0)

如何在自动布局的代码中设置UIViews之间的标准间距?

在界面构建器中,我可以通过"固定"获得与"标准"间距匹配的"垂直空间":

在此输入图像描述在此输入图像描述

在视觉约束语言中,我可以用以下方法完成同样的事情:

V:[top]-[bottom]
Run Code Online (Sandbox Code Playgroud)

如何在代码中的两个视图之间添加标准间距?

我正在寻找可能出现在UIViewController中的类似内容:

NSLayoutConstraint *spacing = ???
[self.view addConstraint spacing];
Run Code Online (Sandbox Code Playgroud)

ios autolayout

5
推荐指数
2
解决办法
4446
查看次数

暂时删除NSLayoutConstraint?

我有一个UITableViewCell使用AutoLayout布局的子类,我想要一个小动画,其中图像视图转换,增长一点并缩小.

目前,由于受到限制,图像右侧的标签也在移动(应该如此).

我想要一种快速简便的方法暂时说"在这个动画运行时将这些标签保留在当前状态".这是我可以做的事情,而不需要删除和重新添加这些约束,这是很麻烦的?

objective-c uitableview ios autolayout

5
推荐指数
2
解决办法
1706
查看次数

动画标签以增加和减小尺寸

我一直在尝试实现一个动画,让用户注意标签中的值的变化.我想这样做,通过快速增加和减少标签的尺寸(想不出更好的方式来描述它),我做了实现这一一些进展.问题在于,动画的大小随着我想要的增加而增加; 它的大小减少的方式并不顺利.此外,一旦动画完成,字体的大小不会返回原始.

这是我有的:

func bloat() {
    UIView.beginAnimations(nil, context: nil)
    UIView.setAnimationDelegate(self)
    UIView.setAnimationDelay(0.6)
    UIView.setAnimationDuration(0.3)
    UIView.setAnimationRepeatCount(4)
    UIView.setAnimationCurve(UIViewAnimationCurve.EaseInOut)
    currentBudgetDisplay.transform = CGAffineTransformMakeScale(0.9, 0.9)
    UIView.commitAnimations()
}
Run Code Online (Sandbox Code Playgroud)

我可以做些什么改变让它按照我的意图去做?

swift

5
推荐指数
1
解决办法
3436
查看次数

UIView CGAffineTransform比例尺问题(自动布局问题?)

我试图通过将CGAffineTransform比例缩放到0 将一个简单的图像应用于imageView,但是由于某种原因,imageView的帧在动画开始之前就被搞砸了。好像自动版式正在应用于缩小的视图。我一点都不想要。我希望视图“相对”地保持在原位置,并且在视觉上缩小到其中心,但是由于视图绑定到其包含视图的顶部和右侧,因此该视图被移动了。

我想要的是使其收缩到中心并消失,但是就在它开始之前,imageView的框架正跳到其容器的右上角(似乎iOS正在动画处理并使用在动画开始之前重新定位它)。跳转到那里之后,动画相对于自身正常工作,视图相对于其中心缩小,但是我想避免它首先移动。

这都是在UITableViewCell由autolayout管理的内部进行的,所以我猜想这与autolayout有关,而<understatement>这并不是我第一次遇到autolayout的问题</understatement>

有什么方法可以防止自动布局影响转换吗?

cgaffinetransform uiviewanimation ios cgaffinetransformscale autolayout

5
推荐指数
0
解决办法
2155
查看次数

iOS 15 上的 AirPods Pro 无法播放音频文件

我正在使用此代码来播放音频。我的代码在所有耳机型号的 iOS 14 上运行良好,但当客户将设备更新到 iOS 15 并使用 AirPods Pro 时,不会播放任何音频文件。在其他 AirPods 型号上以及通过 iPhone 扬声器播放音频文件时,一切正常。发生了什么事。如何修复它?

更新:

经过漫长的等待,我收到了 AirPods Pro。起初我删除了那条线setupMediaPlayerNotificationView(true),应用程序播放声音很好。但锁屏上的一些功能被删除了。应用程序中的这一行没有声音。在 App Store 中,我有 3 个具有相同代码的应用程序。ios 15 之后只有一个可以工作。如果代码相同,我无论如何也不明白原因是什么。为什么其他人不工作?但事实证明,运行的应用程序的名称中只有 1 个单词 - Build Settings -> Product Name -> "myAppName"。其余的人也说了几句话。当我将它们重命名为 1 个单词时,一切正常。声音播放得很好。它以前如何?我还是不明白?如果有人有版本,分享一下。

代码:

 let url = Bundle.main.url(forResource: "\(masterIndex)0", withExtension: "m4a")!
            
     do {
                
     audioPlayer = try AVAudioPlayer(contentsOf: url)
     audioPlayer.delegate = self
     audioPlayer.prepareToPlay()
     play(sender:AnyObject.self as AnyObject)
                
     setupMediaPlayerNotificationView(true)
     lockScreen()
                
     } catch {
                
 }
Run Code Online (Sandbox Code Playgroud)

其他代码:

func lockScreen() {
        
    var albumArtwork : MPMediaItemArtwork!
    let image:UIImage = UIImage(named: …
Run Code Online (Sandbox Code Playgroud)

ios swift airpods ios15

5
推荐指数
1
解决办法
825
查看次数

将比例AffineTransform应用于UIView会改变其中心

当用户点击其超级视图时,我正在运行此代码来缩小UIView.但是,在应用CGAffineTransformScale()时,它也会更改中心.这是预期的行为吗?

-(void) onTap:(UITapGestureRecognizer *)tap{


    [UIView animateWithDuration:1.2
                          delay:0
                        options:0
                     animations:^{
                         CGAffineTransform transform = self.icon.transform;
                         NSLog(@"Previous center: %@", NSStringFromCGPoint(self.icon.center));

                         self.icon.transform = CGAffineTransformScale(transform, 0.5, 0.5);

                         NSLog(@"Next center: %@", NSStringFromCGPoint(self.icon.center));
                     } completion:^(BOOL finished) {
                         //
                     }];


}
Run Code Online (Sandbox Code Playgroud)

cocoa-touch core-animation uiview cgaffinetransform cgaffinetransformscale

4
推荐指数
1
解决办法
9991
查看次数

UIDynamics和Autolayout

最近我使用UIDynamics将图像视图设置为动画.但是,因为它的自动布局y-pos约束被设置为屏幕外,当从屏幕导航然后返回到它时,我的图像视图再次被放置在屏幕外.动画花了大约3秒钟,所以三秒后我就重置了约束.这感觉有点hacky.

所以我的问题是:同时处理自动布局和UIDynamics的正确方法是什么?

objective-c ios autolayout uikit-dynamics

4
推荐指数
1
解决办法
3556
查看次数

CGAffineTransformIdentity和自动布局

是否可以将转换标识设置为当前转换状态?我关注的是使用自动布局,并且一旦应用了转换,框架现在是未定义的.这只是一个抽象的思维过程,实际上可能不是一个问题.

假设我应用了一个CGAffineTransformMakeScale(1,-1)翻转UIView一个超级视图的子视图.现在我已经将一个转换应用于subView框架:现在变得未定义,那么如果我调整superView的尺寸,那将如何影响superView中subView的大小和位置?

我的思维过程告诉我,如果我可以将"CGAffineTransformIdentity"设置为当前转换状态(例如在翻转或旋转之后),我设置的任何自动布局都将被正确处理,但如果没有设置,我将无法获得适当的自动布局处理.

所以我需要担心框架:未定义或自动布局是否使用转换视图的边界:?

identity transform objective-c uiview cgaffinetransform

3
推荐指数
1
解决办法
1824
查看次数

子视图图层转换和layoutSubviews

我的问题与

UIView/CALayer:转换在superview中触发layoutSubviews

据报道,来自苹果的TSI回复:

通常,更改视图(或图层)的几何属性将触发视图层次结构上的级联布局失效,因为父视图可能具有涉及已修改子项的自动布局约束.请注意,无论您是否已明确启用自动布局,它都会以某种形式激活.

在我的情况下,我有一个非常简单的视图层次结构,其中视图A包含视图B.

A的布局子视图中设置B的帧.

当我在B的背衬层上执行动画(变换和不透明)时,有时会调用A的layoutSubviews.这显然是一个问题,因为我在A的layoutSubviews中设置了B的框架,这打破了动画.

如何避免B的布局和动画之间的这种冲突?

core-animation objective-c uiview ios autolayout

3
推荐指数
1
解决办法
4186
查看次数