Batasan untuk mengganti bingkai untuk UIButton

Saya mencoba mengganti bingkai yang ditetapkan dengan batasan untuk UIButton tetapi kode saya terus mogok, apa yang saya lakukan salah?

- (void)CreateButton {
self.Button = [[UIButton alloc] init];
//self.Button.frame = CGRectMake(30, 30, 100, 100);
[self.Button addConstraint:[NSLayoutConstraint constraintWithItem:MyScrollView
                                                          attribute:NSLayoutAttributeTop
                                                          relatedBy:NSLayoutRelationEqual
                                                             toItem:self.myButton
                                                          attribute:NSLayoutAttributeTop
                                                         multiplier:2.0
                                                           constant:30]];
[self.myButton addConstraint:[NSLayoutConstraint constraintWithItem:MyScrollView
                                                          attribute:NSLayoutAttributeHeight
                                                          relatedBy:NSLayoutRelationEqual
                                                             toItem:self.myButton
                                                          attribute:NSLayoutAttributeHeight
                                                         multiplier:3.0
                                                           constant:50]];
[self.myButton setBackgroundColor:[UIColor orangeColor]];
[self.myButton setTitle:@"Press Me" forState:UIControlStateNormal];
[self.myButton setTitleColor:[UIColor purpleColor] forState:UIControlStateNormal];
[MyScrollView addSubview:self.myButton];

person Cameron    schedule 26.05.2016    source sumber
comment
Menabrak, hmm? Kami mungkin dapat lebih membantu jika Anda menunjukkan pesan kesalahan dan memberi tahu kami baris tepat kode Anda yang menyebabkan kerusakan.   -  person luk2302    schedule 26.05.2016
comment
dengan asumsi Anda ingin mengatur batasan untuk satu tombol, setidaknya Anda memiliki dua kode berbeda di atas (self.Button dan self.myButton)   -  person slxl    schedule 26.05.2016
comment
dan mencoba untuk tetap berpegang pada konvensi penamaan objek-C demi kesederhanaan Semesta. Hal ini akan membantu Anda menghindari masalah serupa di masa mendatang developer.apple.com/library/ios/documentation/Cocoa/Conceptual/   -  person slxl    schedule 26.05.2016
comment
Anda juga perlu menambahkan UIButton ke scrollView Anda sebelum menambahkan batasan Anda   -  person AnthonyR    schedule 26.05.2016
comment
Dan, Anda harus menulis : self.myButton.view.translatesAutoresizingMaskIntoConstraints = NO; sebelum menambahkan batasan.   -  person AnthonyR    schedule 26.05.2016
comment
Dan, saya setuju dengan @slxl. Saya berasumsi Anda ingin menulis self.myButton alih-alih self.Button di awal kode Anda   -  person AnthonyR    schedule 26.05.2016


Jawaban (1)


Anda harus menambahkan batasan ke MyScrollView.

person fabe    schedule 26.05.2016
comment
itu seharusnya tidak menyebabkan kecelakaan. - person Teja Nandamuri; 26.05.2016
comment
Dari dokumentasi UIView:addConstraint: Batasan harus melibatkan hanya tampilan yang berada dalam cakupan tampilan penerima. Secara khusus, setiap tampilan yang terlibat harus berupa tampilan penerima itu sendiri, atau subtampilan dari tampilan penerima. Batasan yang ditambahkan pada suatu pandangan dikatakan dipegang oleh pandangan itu. Sistem koordinat yang digunakan saat mengevaluasi batasan adalah sistem koordinat dari tampilan yang menampung batasan tersebut. - person fabe; 26.05.2016