我在故事板中有這個設計,它是我同時堆疊的所有按鈕。但是當我嘗試將它連接到代碼時,我感到很困難,似乎這樣反覆。在UIView中添加大量按鈕
我一直在使用常規的拖放和拖放來連接所有的按鈕嘗試過,但似乎這麼長時間和反覆。 有沒有最佳實踐來連接並使一個聽衆可以聽到所有的按鈕?使用for-loop可能是。
我在故事板中有這個設計,它是我同時堆疊的所有按鈕。但是當我嘗試將它連接到代碼時,我感到很困難,似乎這樣反覆。在UIView中添加大量按鈕
我一直在使用常規的拖放和拖放來連接所有的按鈕嘗試過,但似乎這麼長時間和反覆。 有沒有最佳實踐來連接並使一個聽衆可以聽到所有的按鈕?使用for-loop可能是。
而你可以將它們連接到故事板。
Objective-C的
@property (strong, nonatomic) IBOutletCollection(UIButton) NSArray * buttons;
雨燕2.2
@IBOutlet var collectionOfButtons = [UIButton]()
override func viewDidLoad() {
super.viewDidLoad()
collectionOfButtons.forEach {
$0.addTarget(self, action: #selector(someFunc(_:)), forControlEvents: .TouchUpInside)
}
}
或者更簡單的方法:
override func viewDidLoad() {
super.viewDidLoad()
for view in view.subviews {
(view as? UIButton)?.addTarget(self, action: #selector(someFunc(_:)), forControlEvents: .TouchUpInside)
}
}
func someFunc(sender: UIButton?) {}
雨燕3.0
override func viewDidLoad() {
super.viewDidLoad()
view.subviews.forEach {
($0 as? UIButton)?.addTarget(self, action: #selector(someFunc(_:)), for: .touchUpInside)
}
}
func someFunc(_ sender: UIButton?) {}
以及如何添加操作?哪裏?如何?謝謝Dmytro – chronycles
@chronycles在故事板中創建所有這些按鈕真的很痛苦 –
準確!這就是爲什麼我很困惑。我使用swift 3並使用按鈕而不是UiView,我是否也必須將代碼編寫爲代碼?使用view.subviews.forEach?或者我必須寫這樣的seat.forEach {(座位)在 seat.addTarget(self,action:#selector(handleButton),forControlEvents:.TouchUpInside) } – chronycles
你可以使用開關代替循環在這裏我們去:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button)findViewById(R.id.btn1);
Button button2 = (Button)findViewById(R.id.btn2);
..
....Another buttons
.....
button.setOnClickListener(onClickButtons);
button2.setOnClickListener(onClickButtons);
}
View.OnClickListener onClickButtons = new View.OnClickListener() {
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.btn1: // do smth
break;
case R.id.bt2: //do another thing
break;
..
...
....
default :
break;
}
}
};
嗨Sardor,這是Java代碼?但我用swift代碼問它。呵呵。 – chronycles
對不起兄弟,那一刻我認爲它是Java中的Android。 –
你可以寫在迅速?求求你了,謝謝你。 – chronycles
您在此圖片中顯示的佈局看起來像集合視圖將成爲需求的最佳套件,您可以使用UICollectionView –