Swift 3:获取按钮到屏幕底部的距离

时间:2017-01-27 17:34:15

标签: ios swift storyboard

我想在Swift 3中获得一个按钮到屏幕底部的距离。

当我查看距离(alt键)时,我可以在Storyboard中看到正确的值,但不幸的是我无法手动计算它。

我正在寻找的值与"垂直间距到底部布局"中的常量相同。按钮的约束。

view.frame.maxY - randomButton.frame.maxY

给了我太高的价值。

3 个答案:

答案 0 :(得分:5)

lastBit.data

我觉得还可以!希望它有所帮助

答案 1 :(得分:5)

如果您的按钮不是视图控制器视图的直接后继(也就是说,层次结构类似于ViewController的视图 - > SomeOtherView->按钮),则只需使用框架就无法获得正确的数学。您必须将按钮的Y位置转换为窗口对象或视图控制器主视图的坐标空间。

看看这个问题:Convert a UIView origin point to its Window coordinate system

let realOrigin = someView.convert(button.frame.origin, to: self.view)

然后应用Lucas Palaian建议的数学。

let bottomSpace = view.frame.maxY - (button.frame.height + realOrigin.y)

另外一个工作,如果有一些非常狂野和奇怪的事情,那就是拖放按钮底部约束的出口。 (从Interface Builder中的视图层次结构中选择约束,按住控制键并将约束拖动到视图控制器。)然后在代码中可以访问常量。

let bottomSpace = myButtonBottomConstraint.constant

答案 2 :(得分:0)

使用它从按钮底部到视图底部(已测试):

<script>
        $('#table_article tr').on('click', function(event){
            event.preventDefault();
            if($(this).attr('id') != undefined){
                var id = $(this).attr('id');
                $.ajax({
                    type: 'GET',
                    url : "{% url 'updateligneFacture_temp' %}",
                    data: $("#form_facture").serialize() + "&ref_article=" + $(this).attr('id'),
                    success : function(data){
                        $('#contenue_fact').html(data);
                        $("#"+id).replaceWith($('#table_article tr:last'));// i use id of the tr clicked not object tr
                        $('.selectpicker').selectpicker();
                    },
                    error : function(){
                        alert("Erreur update !!");
                    }
                });


            }

        });
</script>