菜鸟教程小白 发表于 2022-12-12 23:47:18

ios - 使用 PhotoLibrary 私有(private)框架设置 iOS 壁纸时,裁剪/缩放不起作用


                                            <p><p>我已经设法(在 <a href="http://ww.reddit.com/r/jailbreakdevelopers/comments/24uyr6/which_private_framework_and_methods_set/chbsk11" rel="noreferrer noopener nofollow">post</a> 的帮助下)从 PhotoLibrary 私有(private)框架中打开了一个 <code>PLStaticWallpaperImageViewController</code>,它允许直接设置壁纸和锁定屏幕(使用与照片应用程序)。不幸的是,图像裁剪/缩放功能似乎不起作用,因为对 ImageView 本身的触摸似乎没有通过(触摸取消/设置按钮后主视图也没有正确关闭,但这没那么重要)。</p>

<p>我有一个 Xcode 项目演示壁纸设置(可以在模拟器和非越狱设备中运行):</p>

<p> <a href="https://github.com/newenglander/WallpaperTest/" rel="noreferrer noopener nofollow">https://github.com/newenglander/WallpaperTest/</a> </p>

<p>代码非常基础,包含一个继承自<code>PLStaticWallpaperImageViewController</code>的<code>ViewController</code>,并实现了一个类似如下的init方法:</p>

<pre><code>- (id)initWithCoder:(NSCoder *)aDecoder {
    self = ];
    self.allowsEditing = YES;
    self.saveWallpaperData = YES;
    return self;
}
</code></pre>

<p>(首次启动后需要允许访问照片库,并且出于某种原因,此弹出窗口出现在应用程序后面,而不是顶部。)</p>

<p>也许有人知道为什么裁剪/缩放不起作用,或者可以给我另一种在应用中设置壁纸的方法(当然是针对 Cydia 而不是 App Store)?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>使用这个示例项目,效果很好。</p>

<p>具有内部相机控制和自定义布局,在拍摄或从您的库中选择后裁剪图像,我用于我的项目并且非常易于自定义。</p>

<p> <a href="https://github.com/yuvirajsinh/YCameraView" rel="noreferrer noopener nofollow">https://github.com/yuvirajsinh/YCameraView</a> </p>

<p><strong>//---------- 答案改进----------//</strong></p>

<p>我查看了您的项目,发现了 2 个问题:</p>

<p>这里有 3 个语义问题警告:</p>

<pre><code>- (id)initWithUIImage:(id)arg1 cropRect:(struct CGRect { struct CGPoint { float x_1_1_1; float x_1_1_2; } x1; struct CGSize { float x_2_1_1; float x_2_1_2; } x2; })arg2;
</code></pre>

<p> <img src="/image/ZwKC8.png" alt="enter image description here"/> </p>

<p>在你的 <code>ViewController.m</code> 你设置从哪里获取图像?</p>

<pre><code>      - (id)initWithCoder:(NSCoder *)aDecoder
    {
      // black_i

//what directory is this?
      self = ];
//--------------------
      self.allowsEditing = YES;
      self.saveWallpaperData = YES;

      return self;
    }
</code></pre>

<p>我尝试删除你的</p>

<pre><code>- (id)initWithUIImage:(id)arg1 cropRect:(struct CGRect { struct CGPoint { float x_1_1_1; float x_1_1_2; } x1; struct CGSize { float x_2_1_1; float x_2_1_2; } x2; })arg2;
</code></pre>

<p>将 IMG 目录更改为:</p>

<pre><code>self = ];
</code></pre>

<p>一切正常但无法裁剪图像,使用我的 git hub YCameraView 你首先了解它是如何工作的 CROPPING 功能如果你想使用裁剪或更简单,你必须创建一个全屏 <code>UICameraPicker</code> 允许用户从相机或库中获取并允许在 cameraPicker 中进行编辑,然后您可以像这样在 View 中加载新图片</p>

<pre><code>self = ];
</code></pre>

<p>对于关闭 View ,您不能,因为是一个完整的应用程序允许用户设置背景壁纸,并且您不能终止应用程序以查看 SpringBoard,您必须创建第一个 View> 选择器 > 详细 View ,其中设置为一个 Home 和 LockScreen > 然后关闭并返回第一个 View 。</p>

<p><strong>PS:我认为在您的项目中,要在 View 中直接编辑,您必须通过 UIView 上的捏合和平移手势来改进代码</strong></p>

<p>希望对您有所帮助!</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 使用 PhotoLibrary 私有(private)框架设置 iOS 壁纸时,裁剪/缩放不起作用,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/24696884/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/24696884/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 使用 PhotoLibrary 私有(private)框架设置 iOS 壁纸时,裁剪/缩放不起作用