热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何在iOS8中正确确定今日扩展左边距?

如何解决《如何在iOS8中正确确定今日扩展左边距?》经验,为你挑选了2个好方法。

我试图找出如何计算今日扩展主视图中的左边距,以将内容与今日视图标签的其余部分对齐.

这是一个使用Today扩展的干净Xcode项目的示例(我已经为视图背景添加了颜色并绘制了一条红色虚线,以说明我想要对齐Hello World的位置UILabel).

iPhone 6 Plus模拟器(左侧横向,右侧纵向)的结果可以从下图中找到:

在此输入图像描述

在图像中,请注意绿色主视图左边界的位置与应用程序名称UILabel"testi2"的位置不同.看起来红线 - 主视图左边界对齐在每个设备中都有所不同:iPhone 5x,iPhone 6和iPad.

可以使用干净的Xcode项目(我正在使用Xcode 6.1.1,iOS 8.1和Swift)重现该行为:

    创建一个空的Xcode项目(单视图应用程序)

    添加新目标:扩展程序>今天扩展程序

    从Today扩展组中,找到MainInterface.storyboard并使主视图背景为绿色,Hello世界UILabel背景为红色: 在此输入图像描述

如何将Hello World UILabel(红色背景)与虚线对齐?或者如何将主视图(绿色背景)与虚线对齐?



1> dehlen..:

你试过这个吗?

Objective-C:

- (UIEdgeInsets)widgetMarginInsetsForProposedMarginInsets:(UIEdgeInsets)defaultMarginInsets
{
    return UIEdgeInsetsZero;
}

迅速:

func widgetMarginInsetsForProposedMarginInsets(defaultMarginInsets: UIEdgeInsets) -> UIEdgeInsets {
        return UIEdgeInsetsZero
}

否则看起来你必须根据这个So-Thread手动设置它们:

编辑:

看起来这个方法已被弃用,并且不会为运行> = iOS10的设备调用.但是我找不到任何关于替代方案的文档.如果您有任何相关信息,请添加到此帖子,以便每个人都可以获利.只需确保在使用此功能时不会在> = iOS10上调用它.

来源:Apple文档



2> fabian789..:

我尝试使用left的值defaultMarginInset-widgetMarginInsetsForProposedMarginInsets结果喜忧参半:在iPhone 5S的屏幕尺寸,它可以用来获得相同的嵌入于iOS的默认日历控件(注意这里的时间标签的右边缘与蓝线对齐):

5S人像

5S景观

在iPhone 6上,您会得到类似的结果,即它也会对齐.但是,在iPhone 6 Plus上,日历小部件以某种方式缩放插图:

6P人像

6P风景

请注意,在横向版本中,时间和行都不对齐任何内容.

总之,我会说你可以安全地defaultMarginInset.left用来获得不错的结果.


SWIFT代码:

class TodayViewController: UIViewController, NCWidgetProviding {

    var defaultLeftInset: CGFloat = 0
    var marginIndicator = UIView()

    override func viewDidLoad() {
        super.viewDidLoad()

        marginIndicator.backgroundColor = UIColor.whiteColor()
        view.addSubview(marginIndicator)
    }

    func widgetMarginInsetsForProposedMarginInsets(var defaultMarginInsets: UIEdgeInsets) -> UIEdgeInsets {
        defaultLeftInset = defaultMarginInsets.left

        defaultMarginInsets.left = 0
        return defaultMarginInsets
    }

    func widgetPerformUpdateWithCompletionHandler(completionHandler: ((NCUpdateResult) -> Void)!) {
        marginIndicator.frame = CGRectMake(defaultLeftInset, 0, 10, view.frame.size.height)
        completionHandler(NCUpdateResult.NewData)
    }
}


推荐阅读
  • Linux环境下进程间通信:深入解析信号机制
    本文详细探讨了Linux系统中信号的生命周期,从信号生成到处理函数执行完毕的全过程,并介绍了信号编程中的注意事项和常见应用实例。通过分析信号在进程中的注册、注销及处理过程,帮助读者理解如何高效利用信号进行进程间通信。 ... [详细]
  • 深入解析Java虚拟机(JVM)架构与原理
    本文旨在为读者提供对Java虚拟机(JVM)的全面理解,涵盖其主要组成部分、工作原理及其在不同平台上的实现。通过详细探讨JVM的结构和内部机制,帮助开发者更好地掌握Java编程的核心技术。 ... [详细]
  • JSOI2010 蔬菜庆典:树结构中的无限大权值问题
    本文探讨了 JSOI2010 的蔬菜庆典问题,主要关注如何处理非根非叶子节点的无限大权值情况。通过分析根节点及其子树的特性,提出了有效的解决方案,并详细解释了算法的实现过程。 ... [详细]
  • 本文详细介绍了优化DB2数据库性能的多种方法,涵盖统计信息更新、缓冲池调整、日志缓冲区配置、应用程序堆大小设置、排序堆参数调整、代理程序管理、锁机制优化、活动应用程序限制、页清除程序配置、I/O服务器数量设定以及编入组提交数调整等方面。通过这些技术手段,可以显著提升数据库的运行效率和响应速度。 ... [详细]
  • 本题来自WC2014,题目编号为BZOJ3435、洛谷P3920和UOJ55。该问题描述了一棵不断生长的带权树及其节点上小精灵之间的友谊关系,要求实时计算每次新增节点后树上所有可能的朋友对数。 ... [详细]
  • 本文详细介绍了在不同操作系统中查找和设置网卡的方法,涵盖了Windows系统的具体步骤,并提供了关于网卡位置、无线网络设置及常见问题的解答。 ... [详细]
  • 本文详细介绍了Grand Central Dispatch (GCD) 的核心概念和使用方法,探讨了任务队列、同步与异步执行以及常见的死锁问题。通过具体示例和代码片段,帮助开发者更好地理解和应用GCD进行多线程开发。 ... [详细]
  • 本文介绍如何从字符串中移除大写、小写、特殊、数字和非数字字符,并提供了多种编程语言的实现示例。 ... [详细]
  • 深入解析动态代理模式:23种设计模式之三
    在设计模式中,动态代理模式是应用最为广泛的一种代理模式。它允许我们在运行时动态创建代理对象,并在调用方法时进行增强处理。本文将详细介绍动态代理的实现机制及其应用场景。 ... [详细]
  • Android 6.0 切换指定 Wi-Fi 的解决方案
    本文详细介绍了在 Android 6.0 系统中切换到指定 Wi-Fi 的方法,包括常见的问题、原因分析及解决方案。通过官方文档和代码示例,帮助开发者更好地理解和实现这一功能。 ... [详细]
  • 本题要求在一组数中反复取出两个数相加,并将结果放回数组中,最终求出最小的总加法代价。这是一个经典的哈夫曼编码问题,利用贪心算法可以有效地解决。 ... [详细]
  • Delphi 10.4.2 版本现已进入内测阶段,此次更新不仅增强了现有功能,还引入了多项新技术以提升用户体验。新版本将支持最新的MSIX应用打包格式,改善Windows 10应用商店的部署体验;同时,新增的VCL控件将带来更加现代的用户界面设计。 ... [详细]
  • 本文介绍了如何在 C# 和 XNA 框架中实现一个自定义的 3x3 矩阵类(MMatrix33),旨在深入理解矩阵运算及其应用场景。该类参考了 AS3 Starling 和其他相关资源,以确保算法的准确性和高效性。 ... [详细]
  • 本文深入探讨了MySQL中常见的面试问题,包括事务隔离级别、存储引擎选择、索引结构及优化等关键知识点。通过详细解析,帮助读者在面对BAT等大厂面试时更加从容。 ... [详细]
  • 精选多款高效实用软件及工具推荐
    本文介绍并推荐多款高效实用的软件和工具,涵盖系统优化、网络加速、多媒体处理等多个领域,并提供安全可靠的下载途径。 ... [详细]
author-avatar
青岛二三事-丶儿
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有