gpt4 book ai didi

ios - 将 "filter"按钮添加到 ScrollView

转载 作者:搜寻专家 更新时间:2023-11-01 07:17:44 24 4
gpt4 key购买 nike

我是 swift 的新手,我正在通过重新创建 Instagram 类应用来学习这门语言。我的过滤器有问题。当我在模拟器上运行它时,除了 ScrollView 外,一切正常。它应该像在 Instagram 应用程序上一样显示所有过滤器。但它只显示 1 个过滤器(CIFilternames 的最后一个)我怎样才能将其他过滤器作为按钮旁边的按钮?

in the Scrollview should be more filters than one

 var CIFilterNames = [
"CIPhotoEffectChrome",
"CIPhotoEffectFade",
"CIPhotoEffectInstant",
"CIPhotoEffectNoir",
"CIPhotoEffectProcess",
"CIPhotoEffectTonal",
"CIPhotoEffectTransfer",
"CISepiaTone",
"CIPhotoEffectInstant",
]




override func viewDidLoad() {
super.viewDidLoad()


imageview.image = receivedImage

var xCoord: CGFloat = 5
let yCoord: CGFloat = 10
let buttonWidth:CGFloat = 70
let gapBetweenButtons: CGFloat = 5

var itemCount = 0

for i in 0..<CIFilterNames.count {
itemCount = i

// Button properties
let filterButton = UIButton(type: .custom)
filterButton.frame = CGRect(x: 5, y: 10, width: 70, height: 70)
filterButton.tag = itemCount
filterButton.addTarget(self, action: #selector(secendTestViewController.filterButtonTapped(sender:)), for: .touchUpInside)
filterButton.layer.cornerRadius = 6
filterButton.clipsToBounds = true




// Create filters for each button
let ciContext = CIContext(options: nil)
let coreImage = CIImage(image: receivedImage)
let filter = CIFilter(name: "\(CIFilterNames[i])" )
filter!.setDefaults()
filter!.setValue(coreImage, forKey: kCIInputImageKey)
let filteredImageData = filter!.value(forKey: kCIOutputImageKey) as! CIImage
let filteredImageRef = ciContext.createCGImage(filteredImageData, from: filteredImageData.extent)
let imageForButton = UIImage(cgImage: filteredImageRef!);

filterButton.setBackgroundImage(imageForButton, for: .normal)

// Add Buttons in the Scroll View
xCoord += buttonWidth + gapBetweenButtons

filterScrollView.addSubview(filterButton)
} // END FOR LOOP

// Resize Scroll View
filterScrollView.contentSize = CGSize(buttonWidth * CGFloat(itemCount + 2), yCoord)


}



func filterButtonTapped(sender: UIButton) {
let button = sender as UIButton

imageToFilter.image = button.backgroundImage(for: UIControlState.normal)
}

最佳答案

我认为您的问题是 filterButton 框架。试试这个

filterButton.frame = CGRect(x: xCoord, y: 10, width: 70, height: 70)

关于ios - 将 "filter"按钮添加到 ScrollView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41099601/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com