我有一个UIStackView
,在Interface Builder
中创建,包含两个视图。现在,我试图以编程方式改变这些观点的顺序(交换他们的立场,可以这么说)。
是否有一个简单的解决方法 不 使用Interface Builder来完成此任务?
谢谢:)。
答案 0 :(得分:3)
在var url_create_listing = 'https://www.googleapis.com/androidpublisher/v2/applications/com.example.apps/edits?access_token='+tokens;
request.post( url_create_listing, function (error, response, body) {
var str_body = JSON.parse (body);
var listing_id = str_body.id;
var url_upload = 'https://www.googleapis.com/upload/androidpublisher/v2/applications/com.example.apps/edits/'+listing_id+'/apks?uploadType=media&access_token='+tokens;
// request module is capable of auto detecting the Content-Type header
// based on the file extension.
var options = {
url: url_upload
};
fs.createReadStream('example_file.apk')
.pipe(request.post(options, function optionalCallback(err, httpResponse, body){
if (err) {
return console.error('upload failed:', err);
}
console.log('Upload successful! Server responded with:', body);
}));
中创建一个包含2 UIViews
的布局,如下所示:
为您的UIStackView
创建UIStackView
的插座。致电UIViewController
addArrangedSubview
上的UIStackView
来更改订单。请参阅下面的代码段。
viewDidLoad
这应该是结果:
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var stackView: UIStackView!
override func viewDidLoad() {
super.viewDidLoad()
// Switches order of the stackView
stackView.addArrangedSubview(self.stackView.subviews[0])
}
}
获取给定视图并将其添加到arrangeSubviews数组的末尾。在我们的例子中,我们在索引[0]处获取红色视图,并将其添加到addArrangedSubview
的结尾(右侧)。
答案 1 :(得分:1)
您可以使用addArragnedSubview
重新排序视图。
只需要addArragnedSubview,因为将视图添加到新父级时,它将从旧父级中删除。
if self.viewsSwitched{
stackview.addArrangedSubview(self.stackview.subviews[0])
self.viewsSwitched = false
}else{
stackview.addArrangedSubview(self.stackview.subviews[1])
self.viewsSwitched = true
}
此代码通过每次调用
交换stackview中的两个视图答案 2 :(得分:0)
您可以将UIStackView的视图semantic
从Unspecified
更改为Force Right-to-Left
以交换嵌套视图的位置。