- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在通过编程限制使用 swift 4.0 开发 iOS 应用程序。但在 iOS 模拟器上运行时,mainView.topMargin 与 mainView.top 相同。我预计 mainView.topMargin 和 mainView.top 之间有 20 像素的差异。如果有人有任何想法,请帮忙。
我已经在下面发布了我的代码。请检查。
// my scroll view
private let svLogin: UIScrollView = {
let scroll = UIScrollView(frame: .zero)
scroll.backgroundColor = UIColor.yellow//(hex: Colors.PRIMARY_DARK, alpha: 0)
scroll.delaysContentTouches = false
scroll.showsVerticalScrollIndicator = false
scroll.showsHorizontalScrollIndicator = false
scroll.isScrollEnabled = true
scroll.isPagingEnabled = false
scroll.bounces = false
scroll.isUserInteractionEnabled = true
scroll.clipsToBounds = true
scroll.translatesAutoresizingMaskIntoConstraints = false
return scroll
}()
// This is how I am applying constraints
view.layout(svLogin, .leading, .equal, view, .leading)
view.layout(svLogin, .top, .equal, view, .topMargin)
view.layout(svLogin, .width, .equal, view, .width)
view.layout(svLogin, .bottom, .equal, view, .bottomMargin)
// extension to create programmatic constraints
extension UIView {
@discardableResult
func layout(
_ leftItem: Any,
_ leftAttribute: NSLayoutAttribute,
_ relation: NSLayoutRelation,
_ rightItem: Any,
_ rightAttribute: NSLayoutAttribute,
_ multiplier: CGFloat,
_ constant: CGFloat
) -> NSLayoutConstraint {
if let leftView = leftItem as? UIView {
leftView.translatesAutoresizingMaskIntoConstraints = false
}
let constraint = NSLayoutConstraint(
item: leftItem,
attribute: leftAttribute,
relatedBy: relation,
toItem: rightItem,
attribute: rightAttribute,
multiplier: multiplier,
constant: constant
)
self.addConstraint(constraint)
return constraint
}
@discardableResult
func layout(
_ leftItem: Any,
_ leftAttribute: NSLayoutAttribute,
_ relation: NSLayoutRelation,
_ rightItem: Any,
_ rightAttribute: NSLayoutAttribute
) -> NSLayoutConstraint {
if let leftView = leftItem as? UIView {
leftView.translatesAutoresizingMaskIntoConstraints = false
}
let constraint = NSLayoutConstraint(
item: leftItem,
attribute: leftAttribute,
relatedBy: relation,
toItem: rightItem,
attribute: rightAttribute,
multiplier: 1,
constant: 0
)
self.addConstraint(constraint)
return constraint
}
@discardableResult
func layout(
_ leftItem: Any,
_ leftAttribute: NSLayoutAttribute,
_ relation: NSLayoutRelation,
_ constant: CGFloat
) -> NSLayoutConstraint {
if let leftView = leftItem as? UIView {
leftView.translatesAutoresizingMaskIntoConstraints = false
}
let constraint = NSLayoutConstraint(
item: leftItem,
attribute: leftAttribute,
relatedBy: relation,
toItem: nil,
attribute: .notAnAttribute,
multiplier: 1,
constant: constant
)
self.addConstraint(constraint)
return constraint
}
}
最佳答案
我通过为 iOS 11+、iOS 9+、iOS 8+ 编写单独的逻辑解决了我的问题
if #available(iOS 11.0, *) {
svUploadWorks.leadingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.leadingAnchor).isActive = true
svUploadWorks.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor).isActive = true
svUploadWorks.widthAnchor.constraint(equalTo: view.safeAreaLayoutGuide.widthAnchor).isActive = true
svUploadWorks.heightAnchor.constraint(equalTo: view.safeAreaLayoutGuide.heightAnchor).isActive = true
} else {
if #available(iOS 9.0, *) {
svUploadWorks.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true
svUploadWorks.topAnchor.constraint(equalTo: topLayoutGuide.bottomAnchor).isActive = true
svUploadWorks.widthAnchor.constraint(equalTo: view.widthAnchor).isActive = true
svUploadWorks.bottomAnchor.constraint(equalTo: bottomLayoutGuide.topAnchor).isActive = true
} else {
view.layout(svUploadWorks, .leading, .equal, view, .leading)
view.layout(svUploadWorks, .top, .equal, topLayoutGuide, .bottom)
view.layout(svUploadWorks, .width, .equal, view, .width)
view.layout(svUploadWorks, .bottom, .equal, bottomLayoutGuide, .top)
}
}
关于ios - NSLayoutAttribute topMargin 和 BottomMargin (边距约束)在 iOS 编程布局中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48556755/
我希望我的 Anko 布局在顶部有 100dp 的边距,以便在我的主题文件中定义的应用程序背景显示在顶部。 我试过: verticalLayout { back
我似乎无法让我的 margin-top:0; 属性在我的样式表中工作。我不确定为什么,但是当我清除浏览器的缓存时,该属性将暂时起作用,然后立即返回并在我的页面顶部留出一个空间(看看:www.sunpo
我已阅读有关如何在 Android 中执行此操作的信息,但我似乎找不到 Xamarin Android 等效于为布局的 LeftMargin 和 TopMargin 设置动画。显然 Xamarin 有
我正在生成一个 PDF,但我无法为不同的页面提供不同的上边距。 有没有什么方法或者途径可以解决这个问题? response = HttpResponse(mimetype='application/p
我们正在尝试使用 objectanimator 代理来为 Android (Xamarin) 中的 TopMargin 属性设置动画。 但是,我们得到这个错误: [PropertyValuesHold
我正在通过编程限制使用 swift 4.0 开发 iOS 应用程序。但在 iOS 模拟器上运行时,mainView.topMargin 与 mainView.top 相同。我预计 mainView.t
我正在尝试创建一个从底部向上滑动的菜单。它从屏幕底部可见的菜单 View 开始,然后单击它会使它向上滑动。我尝试使用 TranslateAnimation,但尽管像素移动了,但菜单的点击区域仍处于与以
我是一名优秀的程序员,十分优秀!