首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

iOS:以编程方式将文本视图滚动到底部,在文本之后创建一个大空格

在iOS开发中,可以使用UITextView来显示文本内容,并且可以通过编程方式将文本视图滚动到底部,并在文本之后创建一个大空格。下面是一个实现的示例代码:

代码语言:swift
复制
// 创建一个UITextView
let textView = UITextView(frame: CGRect(x: 0, y: 0, width: 200, height: 200))
textView.isEditable = false // 设置为不可编辑,只用于显示文本内容

// 设置文本内容
textView.text = "这是一段文本内容"

// 滚动到底部
let bottomOffset = CGPoint(x: 0, y: textView.contentSize.height - textView.bounds.size.height)
textView.setContentOffset(bottomOffset, animated: true)

// 在文本之后创建一个大空格
let attributedText = NSMutableAttributedString(attributedString: textView.attributedText)
/*
* 提示:该行代码过长,系统自动注释不进行高亮。一键复制会移除系统注释 
* let space = NSAttributedString(string: "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", i, j, k, l);
*/
        }
        else if (i == 1 && j == 0) {
            return 1;
        }
        else if (i == 0 && j == 1) {
            return 1;
        }
        else {
            return 0;
        }
    }
    else if (i == 0) {
        return j;
    }
    else if (j == 0) {
        return i;
    }
    else if (i == 1) {
        return j;
    }
    else if (j == 1) {
        return i;
    }
    else {
        return 0;
    }
}

int main() {
    int a, b;
    cin >> a >> b;
    cout << gcd(a, b) << endl;
    return 0;
}
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Ask Apple 2022 与 SwiftUI 有关的问答(下)

因此,如果你正在创建视图来显示可滚动的内容,并可能进行选择操作,那么 iOS 和 macOS 上使用 List 将有最好的体验。...阅读 The SwiftUI Layout Protocol [11]了解如何创建自定义布局。创建底部开始的滚动视图Q:我如何实现底部对齐的滚动视图 macOS 上会不会有糟糕的性能?...我采用了常见的解决方案,即旋转滚动视图和里面的每个单元格,获得预期的倒置列表, iOS 上,这很有效。但在 macOS 上,它使 CPU 使用率保持 100%。...A:你可以使用 dismissSearch 环境属性编程方式取消搜索字段。目前还没有 API 可以程序化地焦点转至搜索字段。...背景扩展安全区域Q:如果我有个自定义的容器类型,可以接受个顶部和底部视图,是否有办法让 API 的调用者所提供的视图的背景扩展安全区域内,同时内容( 如文本或按钮 )保留在安全区域内?

14.7K30

最新iOS设计规范三|3大界面要素:栏(Bars)

UI Kit是种定义通用界面元素的编程框架,这个框架不仅让APP视觉外观上保持致,同时也为个性化设计留有很大空间。...视图(Views) 包含用户APP中看到的基本内容,例如:文本、图片、动画以及交互元素。视图可以具有滚动、插入、删除和排列等交互行为。 控件(Controls) 控件,是用于触发操作并传达信息的。...如果导航栏包含多个文本按钮,需要通过在按钮之间插入固定的空格项目来增加分隔。以此来避免按钮文本同时显示造成按钮无法区分的问题。 考虑导航栏中使用分段控件,使APP的层次结构更加扁平。...您可以通过使用边栏样式列表并将其放置拆分视图的主列中来创建边栏。视图相关内容后面会讲。 正确的外观应用于边栏。要创建侧栏,请使用集合视图列表布局的侧栏外观。 使用边栏应用程序级别组织信息。...例如,如果iOS设备上没有歌曲,则“音乐”应用中的“立即收听”选项卡说明如何下载歌曲。 始终附加视图中切换上下文。

9.8K10

最新iOS设计规范四|3大界面要素:视图(Views)

“取消”按钮应出现在动作表单的底部。 突出显示破坏性选择。红色用于执行破坏性或危险操作的按钮,并将这些按钮显示动作表单的顶部。 避免让操作表滚动。如果表单选项太多,用户必须滚动才能看到所有选项。...屏幕上需要阅读的文字应该越少越好,可以尝试编写个标题并且避免添加额外的信息。因为单字标题很少会提供有用的信息,所以可以考虑问问题或使用短句的方式,尽可能的标题保留在同行上。...“取消”按钮作为默认按钮,并使用粗体文本。 允许用户通过退出APP主屏幕来取消警示框。当警示框出现时,退出到主屏幕可以退出APP。这个操作产生与点击取消按钮的效果是相同的。...在内容周围使用足够的填充,保持布局整齐并防止内容重叠。 集合的方式不适用于文本信息,文本信息可以用列表。相对于集合,文本信息展示个可滚动的列表中,浏览起来会更简单和有效。 谨慎进行动态布局变更。...五、图像视图(Image Views) 图像视图透明或不透明背景上,显示的单个图像或动画图像序列。图像视图中,图像可以被拉伸、缩放、调整大小适合或固定特定位置。

8.4K31

【Hybrid开发高级系列】ReactNative(七) —— RN组件专题

1.9 嵌套文本         iOS里,显示格式化文本方式是使用NSAttributedString :你可以为你想要显示和注释的文本划定些特 定的格式范围。实际上,这是非常无聊的。...navigationBar节点型         可选的方式提供个能够存留在场景之间转换的导航栏 navigator对象型         可选的方式从父导航器提供navigator对象 onDidFocus...风格的继承只需要在原生文本内 部进行编码,不需要泄露给其他文本或者是系统本身。 3.8 文本输入         通过键盘文本输入应用程序的个基本的组件。...这个例子创建视图两个 颜色的框和自定义的组件打包填充成行。...默认情况下,标签是通过遍历所有孩子和累积所有由空间隔开的文本节点创建的。     accessible布尔型         当它的值为真时,说明视图个可访问的元素。

43840

iOS 9人机界面指南(四):UI元素(上) - 腾讯ISUX

标签栏: 是半透明的 始终出现在屏幕的底部 个标签栏次最多可承载5个标签(多于5个标签的时候,可以展示前4个标签和个“更多”,并将其他的标签列表形式收纳“更多”里面) 横屏与竖屏情况下,高度均保持致...不要创建个自定义按钮来触发活动视图控制器。用户更习惯点击动作按钮后使用系统提供的服务。你应该学会如何更好地利用用户这既定习惯,而不是强迫他们种全新的方式来完成同样的事情。...当用户视图中拖拽内容,内容随之滚动;当用户轻扫屏幕时,内容快速滚动——直到用户再次触摸屏幕或内容已经到达底部时停止。...当你滚动视图中使用页面控件的时候,最好禁用同方向的滚动指示器(scroll indicator)。这样来可以让用户聚焦页码控件上,并让他们有了种唯且清晰的方式来浏览当前内容。...iOS定义了平铺型表格和分组型表格中最常用到的四种单元格布局样式。每种单元格样式都有最适合展示的信息类型。 重要 从编程角度来说,这些样式应用于单元格中,用以控制表格里每列的绘制方式

10.1K51

iOS 9人机界面指南(四):UI元素(下)- 腾讯ISUX

如果用户可以在你的应用程序打开超过20个视图,请考虑给视图个不同的展示方式提供关于视图的详细信息,使其支持不连续的导航。 在打开视图底部边缘和屏幕的底部边缘里垂直居中页面控件。...使用指南可参考System Button. 4.3.13 分段控件 分段控件是组分段的线性集合,每个分段的作用类似按钮,点击之后切换到相应的视图。 ?...可能的话,尽量保证句子12行之间。如果句子太长,用户会需要滚动才能看完,这样的体验很糟。使用句子式大写,并在句末加上适当的标点符号。 ? 避免文本中详细描述“该按哪个按钮”而导致文本过长。...此外,用户滚动的过程中将很有可能误点其它按钮。 4.4.3模态视图 模态视图模态形式展现的视图,它为当前任务或当前工作流程提供独立的、自包含的(self-contained)功能。 ?...用户很容易便能感知这些改变,还会认为这些改变存在特别的意义。最好能设计出种符合逻辑并始终保持致的过渡方式,让用户容易感知并且记忆。没有充分理由支持的情况下,最好不要改变这些默认的过渡方式

13.2K30

最新iOS设计规范五|3大界面要素:控件(Controls)

添加联系人按钮 用户可以点击“添加联系人”按钮来浏览现有联系人列表,并选择个要插入文本字段或其他视图中的联系人。...通过提供特定于应用程序的其他命令来增加菜单的选项,与标准命令样,任何自定义命令都可以对选择的文本或对象进行操作。 系统提供的命令之后显示自定义命令。...七、选择器(Pickers) 选择器可以显示个或多个可滚动的不同值列表,供人们选择。iOS 14及更高版本中,日期选择器支持其他选择值的方式,例如在日历视图中选择日期或使用数字键盘输入日期和时间。...模式视图中,人们可以对日期和时间进行多次编辑,然后视图外部轻按确认他们的选择。 指定分钟数时,请考虑提供较小的粒度。默认情况下,分钟列表包含60个值(059)。...使用分隔符可视方式对相关菜单项进行分组。创建视觉分组可以帮助人们更快地扫描菜单。例如,“文件”应用程序中的“更多”菜单使用分隔符来帮助用户快速的查看和排序项目。

8.5K30

Material Design — 底部导航(Bottom Navigation)

自上次参加完回音分享会后,我下定决心要洗心革面乖乖打基础,于是开启了这个part,争取两个月不间断更新,写完Material Design与iOS中的组件(顺便学学英语),以便今后使用的时候完全不虚!...规格 每个部分的宽度:底部导航的宽度除以级页面数量(最大值为168dp,最小为80dp) 高度:56dp 图标:24×24dp ---- 用法 底部导航提供了级页面之间的快速导航方式,主要用户移动端...---- 风格 图标和文本 因为底部导航动作icon呈现,所以底部导航中的内容应该与icon进行适当的互动。...·包含用户首选项或设置的页面 Android上,后退按钮不在底部导航栏视图之间导航。 底部导航icon 点击底部导航icon直接带你相关页面,或刷新当前页面。...滚动 底部导航栏滚动时可以动态地出现和消失: ·向下滚动隐藏底部导航栏 ·向上滚动显示 手势 在内容区域上使用左右滑动手势不会在级页面之间切换。

4K90

Flutter技术与实战(4)

Widget渲染过程 通常情况下,不同的 UI 框架中会不同的方式去处理这问题,但无例外地都会用到视图树(View Tree)的概念。...Flutter Widget 设计成不可变的,所以当视图渲染的配置信息发生变化时,Flutter 会选择重建 Widget 树的方式进行数据更新,数据驱动 UI 构建的方式简单高效。...; Flutter 的视图开发是声明式的,其核心设计思想就是视图和数据分离,这与 React 的设计思路完全致。 总结来说,命令式编程强调精确控制过程细节;而声明式编程强调通过意图输出结果整体。...不过,这种创建方式要求提前所有子 Widget 次性创建好,而不是等到它们真正在屏幕上需要显示时才创建,所以有个很明显的缺点,就是性能不好。因此,这种方式仅适用于列表中含有少量元素的场景。... ListView 中,有两种方式支持分割线: 种是, itemBuilder 中,根据 index 的值动态创建分割线,也就是分割线视为列表项的部分; 另种是,使用 ListView 的另个构造方法

10.7K20

最新iOS设计规范七|10大视觉规范(Visual Design)

确保背景延伸到显示器的边缘,并且垂直方向可以滚动的布局(如表和集合),直延伸到底部。 避免屏幕底部和角落放置交互式控件。...他们习惯于iOS中使用的微妙动画,例如平滑过渡、设备方向的流畅转换和基于物理的滚动。除非你是创建沉浸式体验,例如游戏,否则你的自定义动画应与系统的内置动画差不多的。 动画设置为可选。...使用这两组背景颜色,通常使用变体以下列方式指示层次结构: 主要的,用于整体的 次要的,用于整体视图中对内容或元素进行分组 第三层,用于第二层元素中的内容或元素分组 对于前景内容,iOS定义以下颜色...种非正式、平易近人的风格,就像你午餐时与人交谈的方式样。偶尔使用缩略词、你和你的直接与用户对话。 慎用幽默性语句。...从iOS 14开始,系统可变字体格式提供San Francisco和New York字体。这种格式将不同的字体样式组合到个文件中,并支持样式之间进行插值创建中间的样式。

7.9K30

Ios常用第三方框架(二)

Atlas-iOS - 快速iOS里集成聊天功能,类似开源版本的环信。Layer家开源了套聊天app界面的解决方案.看起来很赞,很多蛮复杂的东西直接都帮封好了。...横向展示文本内容的自定义cell - 可以横向展示文本内容的自定义cell,根据文本无限滚动。...DZNEmptyDataSet - DZNEmptyDataSet算是个很标准的iOS内建方式,适合用来处理空的table view和collection view。...会自动collection view处理完善,并将用户消息合适美观的方式显示出来。每个iOS项目都可以自动处理。...实现教程 XWCatergoryView - 个轻量级的顶部分类视图控件,只需要通过简单的设置,你就可以快速集成该控件, 控件目前暂时有底部横条移动,椭圆背景移动,文字缩放,文字颜色变化,和文字颜色渐变五种效果

7.6K60

react native简单入门

state constructor中初始化该组件的state,之后通过this.setState({})修改state。...常用属性如下:(此组件与TouchableHighlight的区别在于并没有额外的颜色变化,更适于般场景) activeOpacity 指定封装的视图在被触摸操作激活时多少不透明度显示(通常在01...之间) onPress TouchableHighlight 用于写按钮的组件,常用属性如下: activeOpacity 指定封装的视图在被触摸操作激活时多少不透明度显示(通常在01之间) underlayColor...Modal ScrollView horizontal 当此属性为true的时候,所有的子视图会在水平方向上排成行,而不是默认的垂直方向上排成列。默认值为false。...FlatList data 数据 renderItem 每项的渲染组件 onEndReached 当列表被滚动到距离内容最底部不足onEndReachedThreshold的距离时调用 onEndReachedThreshold

3.5K10

iOS Human Interface Guidelines》——Table View表视图

视图视图个由多行组成的滚动单列清单中显示数据。...Value 2风格蓝色字体显示右对齐的标题,紧跟着同行显示左对齐的黑色字体子标题。图片在这种风格中不太适合。 Value 2的布局中,文本间清爽的垂直边缘帮助用户专注于详细文本的第个单词。...点击之后,用户期待个新视图的出现(或者行显示个勾选符号)来表示条目被选中了。 如果表内容是冗长的或复杂的,不要等到所有数据都获取之后再显示。...合适的话,给删除按钮使用个自定义的标题。如果这有助于用户更好地理解你的app的工作方式,你可以创建个标题来代替系统提供的删除标题。 尽可能地使用简洁的文本来避免截断。...显示表右边界的表视图元素——比如扩展指示器——会干扰索引。 如果你想要用非标准的方式布局你的表单元格,创建自定义的单元格风格。创建自定义的表单元格风格会比标准的要更好。

2.4K20

最新iOS设计规范六|10大交互规范(User Interaction)

可以考虑字段值列表按首字母排序或是其它逻辑排列,以便于加快用户浏览和选择的速度。 文本字段中显示提示,帮助传达目的。当输入栏没有其他文本时,可以用占位符文本,比如:“电子邮件”或“密码”。...而这个视图便可以让你能够快速执行常用的应用任务或者预览有趣的信息。例如:日历用于便提供了个可以快速创建新事件的快捷操作,同时又可以显示你的下个日程。...撤消和重做警示框的标题自动包含前缀“撤消”或“重做”(包括尾随空格)。你需要提供两个词用于描述撤消或重做的内容,显示在此前缀之后。例如,你可以创建警报标题,例如“撤消名称”或“重做地址更改”。...拖动内容时,用户可以通过多任务处理,退出到主屏幕或从屏幕底部向上滑动显示Dock来访问另个应用程序。 支持拖放 使拖放可用于所有可选和可编辑的内容。 如果适用,允许内容拖放到控件上。...适当的时机自动滚动目标的内容。 提取并显示拖放内容的最丰富的表示形式。 如果适用,仅提取被放置内容的相关部分。 内容被放置后,视图和集合视图中显示占位符。

4K30

用这些 iOS 技巧让你的 APP 性能更佳

除此之外,每个 tableViewCell 滚动期间都需要分配新内存。如果你快速滚动视图,期间会动态分配许多小块内存,这个过程将使 UI 变得卡顿!...当你新建 iOS 项目时,Xcode 会创建个空白的 LaunchScreen.storyboard 供你使用。当应用程序加载视图控制器和布局时,向用户显示此页面。...Apple 的人机界面指南还建议我们不要在启动页上包含文本,因为启动页是静态的,应用程序不能将文本本地化适应不同的语言。...可以恢复标识符组合在形成恢复路径。标识符是通过视图层次结构来分组的,从根视图控制器当前活动视图控制器。...如果视图具有透明度(即 alpha 低于 1.0),那么 iOS 需要做些额外的工作来混合视图层次结构中不同的视图计算出哪些内容需要展示。

3.2K30

Flutter 2.5正式版发布,带来重大更新

此版本延续了些重要的性能和工具改进,同时又发布了些新功能,包括: 对 Android 的全屏支持、更多 Material You(也称为 v3)支持; 更新的文本编辑支持可切换的键盘快捷键; ...此外,Dart 2.14 创建组标准的 lint,新的 Dart 和 Flutter 项目之间共享,开箱即用。...屏幕的底部为用户提供通知。...因此,在此版本中,我们提供了个新模板 ( #83530 ),创建的命令如下: flutter create -t skeleton my_app 骨架模板生成个遵循社区最佳实践的两页列表视图,...其他 除此之外,Flutter 2.5的重大更改和弃用还有如下些: 默认拖动滚动设备 v2.2 之后删除了弃用的 API 引入包:flutter_lints ThemeData 的 accent

4.3K50

Material Design —卡片(Cards)

左:网格tile干净轻量方式展示图片库    右:卡片不适合展示同类内容 ---- 内容 卡片为联系更紧密的信息和视图提供上下文和入口点,其内容和数量可能会有很大差异。...背景图像 当文字放置纯色背景上时,文字清晰度最高,且文字对比度足够高。 放置图像背景上的文本应该保留文本的易读性。 ? 左:不同布局的卡片    右:排版方式能突出重点内容 ?...卡片不会翻转显示背面的信息。 支持的手势 卡片手势应始终卡片集合中实施。 支持的手势包括: 滑动手势(swipe gesture)可以每张卡片上使用。限制视图内的轻扫手势,使其不会彼此重叠。...旦展开,卡片可能会超过视图的最大高度。 在这种情况下,卡片随卡片集合滚动。 ? ? 左:卡片可留有展开入口    右:手机端不要在卡片内放置可滚动区域,会存在两条很难分开的滚动条 ?...集合中的卡片中,始终展示操作。 补充操作 使用图标,文本和UI控件(通常放置卡的底部)明确调出卡内的补充操作。 除了溢出菜单之外,补充操作限制为两个操作。 ? ?

4.3K100
领券