菜鸟教程小白 发表于 2022-12-13 10:40:29

ios - 为什么更大的图像不会出现在共享扩展或操作扩展中?


                                            <p><p>当我尝试创建共享扩展(或操作扩展)时
要写包含共享图像的电子邮件,为什么不显示较大的图像,只显示小图像?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>由于图像数据提供给您的扩展程序之前可能会有延迟,因此您必须等待它到达,然后才能显示包含它们的电子邮件撰写窗口。 (否则不会出现)</p>

<p>我在 bitsToLoad 中保留了一个计数器,我会为我请求的每条数据递增,并为我收到的每条数据递减</p>

<pre><code>if () {
                        bitsToLoad ++;
                        __weak MFMailComposeViewController *pick = picker;
                        [itemProvider loadItemForTypeIdentifier:(NSString *)kUTTypeImage options:nil completionHandler:^(UIImage *image, NSError *error) {
                            if (image) {
                              ;
                            }
                            ;
                        }];
</code></pre>

<p>在我出示电子邮件表格之前,请检查他们是否都已到达。</p>

<pre><code>-(void) dataFetched {
    bitsToLoad--;
    if (bitsToLoad==0) {
      ;
    }
}
</code></pre>

<p>但这还不够。</p>

<p>为了确保在考虑所有附件之前不会出现电子邮件界面,并且即使没有图像也会在最后显示,我在扫描例程开始时将 bitsToLoad 设置为 1... </p>

<pre><code>NSInteger bitsToLoad=1
</code></pre>

<p>并在最后减少并检查它。</p>

<pre><code>;
</code></pre>

<p>现在 ViewController 只有在检查了所有附件并获取所有数据后才会显示。</p>

<p>请注意,即使没有这种检查,您也可能会发现小图像(例如屏幕截图)会出现,因为它们足够快地传递给扩展程序,但如果没有这种检查,它肯定会破坏较大的图像,例如典型的 iPhone照片。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 为什么更大的图像不会出现在共享扩展或操作扩展中?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/32456738/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/32456738/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 为什么更大的图像不会出现在共享扩展或操作扩展中?