ご返答ありがとうございます!URLのローカルを試しましたが上手く行きませんでした。
難しくなるのですが、
import UIKit
import SafariServices
class tabelview: UIViewController ,
UITableViewDataSource, UITableViewDelegate,UIScrollViewDelegate {
@IBOutlet var table:UITableView!
// section毎の画像配列
let imgArray: NSArray = [
"img1",
"img2","img3",
"img4","img5",]
let img1Array: NSArray = [
"img1",
"img2","img3",
"img4","img5",]
let img2Array: NSArray = [
"img1",
"img2","img3",
"img4","img5",]
let label2Array: NSArray = [
"100000円","8/23/16:15",
"8/23/16:47","8/23/17:10",
"8/23/1715:","8/23/17:21",
"8/23/17:33","8/23/17:41"]
let abc: NSArray = ["https://www.youtube.com/","https://www.google.co …]
override func viewDidLoad() {
super.viewDidLoad()
}
//Table Viewのセルの数を指定
func tableView(_ table: UITableView,
numberOfRowsInSection section: Int) -> Int {
return imgArray.count
}
//各セルの要素を設定する
func tableView(_ table: UITableView,
cellForRowAt indexPath: IndexPath) -> UITableViewCell {
// tableCell の ID で UITableViewCell のインスタンスを生成
let cell = table.dequeueReusableCell(withIdentifier: "tableCell",
for: indexPath)
let img = UIImage(named: imgArray[indexPath.row] as! String)
let img1 = UIImage(named: img1Array[indexPath.row] as! String)
let img2 = UIImage(named: img2Array[indexPath.row] as! String)
// Tag番号 1 で UIImageView インスタンスの生成
let imageView = cell.viewWithTag(1) as! UIImageView
imageView.image = img
let imageView1 = cell.viewWithTag(10) as! UIImageView
imageView1.image = img1
let imageView2 = cell.viewWithTag(20) as! UIImageView
imageView2.image = img2
// Tag番号 2 で UILabel インスタンスの生成
let label1 = cell.viewWithTag(2) as! UILabel
label1.text = "No." + String(indexPath.row + 1)
// Tag番号 3 で UILabel インスタンスの生成
let label2 = cell.viewWithTag(3) as! UILabel
label2.text = String(describing: label2Array[indexPath.row])
let Button1 = cell.viewWithTag(4) as! UIButton
Button1.addAction(.init{ [self] _ in
let url = URL(string: self.abc[indexPath.row] as! String)!
if UIApplication.shared.canOpenURL(url) {
UIApplication.shared.open(url)
}},for:.touchUpInside)
let page = cell.viewWithTag(5) as! UIPageControl
let scroll = cell.viewWithTag(6) as! UIScrollView
scroll.delegate = self
func scrollViewDidEndDecelerating(scrollView: UIScrollView) {
page.currentPage = Int(scroll.contentOffset.x / scroll.frame.maxX)
}
return cell
}
// Cell の高さを120にする
func tableView(_ table: UITableView,
heightForRowAt indexPath: IndexPath) -> CGFloat {
return 600.0
}
}
こちらのソースコードの
let page = cell.viewWithTag(5) as! UIPageControl
let scroll = cell.viewWithTag(6) as! UIScrollView
scroll.delegate = self
func scrollViewDidEndDecelerating(scrollView: UIScrollView) {
page.currentPage = Int(scroll.contentOffset.x / scroll.frame.maxX)
}
この部分を利用するにはどのようにすれば良いでしょうか?
tagで宣言するには、セルの中に入れないといけません。しかし、func scrollViewDidEndDecelerating(scrollView: UIScrollView) {
page.currentPage = Int(scroll.contentOffset.x / scroll.frame.maxX)
}
この部分は、セルの外に出したいのです。
その場合どのようすれば解決できますでしょうか?度重なる質問申し訳ございません。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
>xcodeでやっているため、storyboardも使っております。
作成中の画面キャプチャ、あるいはポンチ絵(概念図)をどっかに掲示してみては。なにか回答がえられるかも。
>tagで宣言するには、セルの中に入れないといけません。
個人的には、ここが間違いの元じゃないかと思います。
テーブルビューとスクロールビューの包含関係が解ってないので、勘違いかもしれませんが。
No.3
- 回答日時:
質問文が説明不足で、質問者のやりたいことが見えてないような。
処理対象としているスクロールビューを、テーブルビューのセルから取り出しているということは、その紐づけをXcode(Storyboad?)で記述していると思われますが、そこらへんの詳細も開示しないと、回答者も状況をつかめないと思います。
>この部分は、セルの外に出したいのです。
――のところだと、単に記述上の質問にしか見えないような。
で、
scrollViewDidEndDeceleratingは、スクロールビューコントローラに記述するメソッドです。
>class tabelview: UIViewController ,
UITableViewDataSource, UITableViewDelegate,UIScrollViewDelegate
――で、スクロールビューコントローラとして機能するよう宣言しているので、記述する位置としては問題ないかと。
※今のMac持ってないので、昔の知識(AppKit時代)で話してます。
ご回答ありがとうございます。回答者さんがゆーようにxcodeでやっているため、storyboardも使っております。なので、コードだけの提示はわかりにくいと思いますが、何とぞご協力お願いいたします。
このままだと、セルが出された時にだけ出力されるのですが、そーではなく、スクロールした時に出力してほしいのですが、そのためには、cellの外で、funcするしかありません。しかし、funcの中身では、pageやscrollと言った変数宣言?をしたものを使っているため、変数宣言も外でやりたいのですが、それもできません。わかりにくい質問をして、もうわけございません。質問していただけると答えますので、ご協力お願いします。
No.2
- 回答日時:
単にローカル関数なりローカルプロシージャの
func scrollViewDidEndDecelerating(scrollView: UIScrollView) {
page.currentPage = Int(scroll.contentOffset.x / scroll.frame.maxX)
}
を定義してるだけ、で呼び出してねぇだけ、なんじゃねぇの?
一般にローカル関数、ないしはローカルプロシージャを定義する場合、
(ぶっちゃけ、フツーは、C言語、及びその仲間みたいな非力な言語じゃない限り定義出来る)
func a() {
func b() {
何らかのbの動作
}
b() // ここでbを実行
}
みたいにせんと内側のローカル関数、ないしはローカルプロシージャは実行されません。
あなたの提示したコードだとローカル関数なりプロシージャが定義されてるだけで実行されてないです。
それだけなんじゃないですかね。
No.1
- 回答日時:
func scrollViewDidEndDecelerating(scrollView: UIScrollView) {
page.currentPage = Int(scroll.contentOffset.x / scroll.frame.maxX)
}
を外に出して、
ここでは、
scrollViewDidEndDecelerating(scrollView: UIScrollView)
としてはどうでしょうか。
ご回答ありがとうございます。
外に出す場合の問題点として、
page
scroll
と言った変数宣言?をしないと使えないものがあります。
なので、funcだけを外に出すと言うより、
let page= やlet scroll= なども外に出す必要があるのですが、そこが上手くいきません。なぜかというと、このUI scrollviewやUIpagecontrollは、デーブルセルの中に入っているからです。xcodeを使っているので、storyboardの詳細なども明かしたいのですが、画像が貼れないため、swiftのコードだけを貼らせていただいております。なかなか理解しにくい質問ではあるので、なにかわからないことがあれば質問お願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
- JavaScript 追加ボタンを押した際に ok ボタンを押した場合のみ入力値が追記されるようにしたいです 6 2022/05/29 09:57
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- JavaScript 2段階プルダウンで1段階目の選択を終えた後に選択ボックスを見えなくしたい 2 2022/07/05 21:58
- JavaScript アップロードファイルの種類によって処理を分岐させたいのですが書き方が分からずアドバイスお願いします 4 2023/06/17 19:12
- 英語 下記はなんていってますか? こんにちは以降、訳していただけたら助かります。 Hello, We’re 1 2023/01/14 00:09
- JavaScript java keyを配列で表記したい 10 2022/12/01 17:53
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
変数名の付け方
-
複数の変数を宣言する時、同時...
-
C# インスタンスの破棄
-
インスタンス参照でアクセスで...
-
private static という変数の修飾
-
newしないインスタンス?実体化...
-
String a = "a"; と String b =...
-
C#において、同じインスタンス...
-
生成したインスタンスを削除す...
-
VB.NET getとsetの概念がわかり...
-
「インスタンス」の意味をわか...
-
VB6.0で、DLLを動的に参照したい
-
SetWindowsHookExで質問
-
文字列を日付に変換でParseExce...
-
SQLを連続発行する時の正しい(?...
-
オブジェクト参照がオブジェク...
-
変数の参照でエラーが出てしま...
-
C#の構造体の開放のしかた
-
フォームの存在をチェックする方法
-
擬似コード
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
変数名の付け方
-
インスタンス参照でアクセスで...
-
複数の変数を宣言する時、同時...
-
private static という変数の修飾
-
VB.NET getとsetの概念がわかり...
-
C#において、同じインスタンス...
-
生成したインスタンスを削除す...
-
C# インスタンスの破棄
-
newしないインスタンス?実体化...
-
SQLを連続発行する時の正しい(?...
-
「インスタンス」の意味をわか...
-
文字列を日付に変換でParseExce...
-
変数の参照でエラーが出てしま...
-
フォームの存在をチェックする方法
-
javaのクラスの作り方、エラー...
-
オブジェクト参照がオブジェク...
-
String a = "a"; と String b =...
-
C#「オブジェクト参照が必要で...
-
エクセル(複数インスタンス)...
-
他のファイルの変数参照
おすすめ情報