2017-07-11 2 views
0

Ich habe ein kleines Problem damit, meine programmatisch erstellte UIButton innerhalb der Grenzen einer UIView zu halten.UIButton erstreckt sich über die Kante von UIView mit gleicher Breite swift

Die Schnittstelle ist aufgebaut wie; ScrollView -> ContentView -> (Liste der programmatisch erstellten Schaltflächen aus SQLite-Schleife)

Hier ist der Code, der die Schaltfläche erstellt;

  let frame = CGRect(x: 0, y: 0 + (numOfButtons * 58), width: Int(ContentView.frame.width) , height: 50) 
      let button = UIButton(frame: frame)     
      button.showsTouchWhenHighlighted=true 
      button.layer.cornerRadius=5 
      button.setTitle(btnTitle, for: []) 
      ContentView.addSubview(button) 
      numOfButtons+=1 
      button.addTarget(self, action: #selector(btnPressed), for: .touchUpInside) 

Dieser Code gibt dieses Ergebnis;

Picture of button

Hat jemand irgendwelche Ideen, wie ich über die Festsetzung dieser gehen kann? Es scheint mir, dass der ContentView zu weit ist? aber ich habe es auf gleiche Breite auf die ScrollView gesetzt.

Alle und alle Hilfe wird sehr geschätzt. Vielen Dank im Voraus

Chris.

+0

Sie sind Einstellknopf Rahmenbreite als ContentView.Width. Nein, machen Sie die Breite mit Self.View.Frame.Size.Width. Inhaltsansicht Breite, die Sie möglicherweise programmatisch für zukünftige Zeiteinsparung variiert haben geben Sie die Breite der Schaltfläche in Bezug auf Rahmen nicht Inhalt anzeigen –

+0

COntentView Breite Höhe kann variiert werden, aber mainFrame Breite Höhe nicht so besser, Button Frame nach View Frame –

+0

@iOSGeek Ich habe versuchte das und es hat mir das gleiche Ergebnis gegeben. Meine ScrollView ist auf self.view-Ränder beschränkt, und ich möchte, dass die Schaltflächen die gleiche Breite wie ScrollView und ContentView haben (da sie beide die gleiche Größe haben). Nun, obwohl die Ausgabe die Breite der Schaltflächen und die Breite der Inhaltsansicht gleich anzeigt. Es schneidet immer noch die rechte Seite ab. – Chris

Antwort

0

Bitte überprüfen Sie meine folgenden Code als Referenz

hier ist mein Code-Ausgabe

Output

import UIKit 

class ViewController: UIViewController,UIScrollViewDelegate { 


@IBOutlet weak var ContentView: UIView! 

var scrollView: UIScrollView! 
var containerView = UIView() 


override func viewDidLoad() { 
    super.viewDidLoad() 


    let button = UIButton(type: UIButtonType.custom) as UIButton 

    let image = UIImage(named: "image") as UIImage? 
    let frame = CGRect(x: 20, y: 300, width: self.view.frame.size.width - 20 - 20, height: 50) 
    button.frame = frame 
    button.showsTouchWhenHighlighted=true 
    button.layer.cornerRadius=5 
    button.clipsToBounds=true 
    button.setBackgroundImage(image, for: .normal) 
    button.setTitle("Hi", for:.normal) 

    self.scrollView = UIScrollView() 
    self.scrollView.delegate = self 
    self.scrollView.contentSize = CGSize(width: 1000, height: 1000) 


    containerView = UIView() 


    scrollView.addSubview(containerView) 
    view.addSubview(scrollView) 
    self.view.addSubview(button) 


} 

override func viewDidLayoutSubviews() { 
    super.viewDidLayoutSubviews() 

    scrollView.frame = view.bounds 
    containerView.frame = CGRect(x: 0, y: 0, width: scrollView.contentSize.width, height: scrollView.contentSize.height) 


} 
Verwandte Themen