我正在Xcode中工作,我有一個循環,其中我動態創建UIImageViews和UITextviews並將它們插入到UIScrollView。在每一行,我創建4周的UIImageViews和2個UITextViews,所以代碼如下所示:識別在循環中創建的UIImageView和UITextView iOS
for (int i=0; i<dim; i++){
UITextView *textView1= [[UITextView alloc] initWithFrame:CGRectMake(0, 0, screenWidth/2, 37)];
UITextView *textView2= [[UITextView alloc] initWithFrame:CGRectMake(screenWidth/2, 0, screenWidth/2, 37)];
UIImageView *imageView1 = [[UIImageView alloc] initWithFrame:CGRectMake(0,50,screenWidth/4,100)];
UIImageView *imageView2 = [[UIImageView alloc] initWithFrame:CGRectMake(screenWidth/4,50,screenWidth/4,100)];
UIImageView *imageView3 = [[UIImageView alloc] initWithFrame:CGRectMake(screenWidth/2,50,screenWidth/4,100)];
UIImageView *imageView4 = [[UIImageView alloc] initWithFrame:CGRectMake(screenWidth*3/4,50,screenWidth/4,100)];
}
設置在UITextViews在UIImageViews的圖像,文本和顯示他們在UIScrollView中的代碼的偉大工程,我不張貼它,因爲它太長了。
我的問題是:當我點擊一個圖像時,我調用了我想對同一行的ImageViews和TextViews進行更改的方法,我如何識別它們?
檢測點擊的圖像不是使用recognitionizer.view,檢測同一行的其他圖像我試圖設置標籤的意見,然後調用「viewWithTag」找到它們,但我有問題,因爲同一行的元素具有相同的標記值,我會產生混淆。
我的目標是例如:
當我在第一行中點擊imageView1應該改變形象imageView3同一行的。
當我點擊imageView3在第四行應改變同一行textView2中的文本。
等等..
有沒有在不使用標記屬性任何其他方法?
我希望我解釋自己
這聽起來像你最好使用'UITableView'或'UICollectionView'來做你想做的事情。因爲這將允許您訪問特定行/索引處的單元格以及自定義單元格子類,您可以訪問圖像屬性。 – Evan
@Evan插入一個UITextView到UITableViewCell中,如果你想對佈局進行細粒度的控制,就會要求一個痛苦的世界。我已經做到了,而且絕對有時候應該避免。它必須根據具體情況採取。 –
@AbhiBeckert夠公平的。另一種選擇是製作一個'UIView'子類並將所有內容公開爲屬性。如果你想通過你的結構,你可以避免使用標籤。 – Evan