我有一个 UIImage,当我点击它时,我希望它在 X 方向移动 2px,在 Y 方向移动 2px,然后移回原始位置。这样就可以多次按下它,然后轻轻晃动。
到目前为止,我所拥有的是这个;
imageViewTwo.center = CGPointMake(imageViewTwo.center.x +2, imageViewTwo.center.y +2);
Run Code Online (Sandbox Code Playgroud)
这使图像每个方向移动 2px。
我试过这个;
imageViewTwo.center = CGPointMake(imageViewTwo.center.x +2, imageViewTwo.center.y +2);
imageViewTwo.center = CGPointMake(imageViewTwo.center.x -2, imageViewTwo.center.y -2);
Run Code Online (Sandbox Code Playgroud)
但这只会使图像根本不动。这些行在 viewDidLoad 中。
我需要的是让它在被点击到原始位置后立即返回。
我被困住了,我不知道如何删除隐藏的 UIImage 的间距。目的是如果flag为true,则显示UIImage,如果flag为false,则隐藏UIImage但该隐藏图像的空间仍然存在。
我正在使用自动布局。

我的应用程序从后端加载图像并将它们显示在 UITableViewCell 中,其中包含一个 UIImageView 来显示它以及一些标签和按钮。
我已使用“重置为建议的约束”选项将建议的约束添加到 UITableViewCell。
这是检索数据后的一些代码:
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
var cell = PostTableViewCell()
if (self.posts.count == 0) { return cell }
let post = posts[indexPath.row]
// Instancia o reuse identifier
if post["post_image"] != nil {
cell = tableView.dequeueReusableCell(withIdentifier: Storyboard.PostWithImage, for: indexPath) as! PostTableViewCell
} else {
cell = tableView.dequeueReusableCell(withIdentifier: Storyboard.PostWithoutImage, for: indexPath) as! PostTableViewCell
}
return cell
}
override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
var …Run Code Online (Sandbox Code Playgroud) 我试图将 2 个 uiimages 保存在一起,然后将组合的图像放入一个名为 finalImage 的图像视图中。但是,我收到错误消息,指出我已为我的问题分配了标题。只是想将组合的 uiimage 放在图像视图中。
@IBOutlet var finalImage: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
let bottomImage:UIImage = UIImage(named: "pic")!
let topImage:UIImage = UIImage(named:"wall")!
// Change here the new image size if you want
let newSize = CGSize(width: bottomImage.size.width, height: bottomImage.size.height)
UIGraphicsBeginImageContextWithOptions(newSize, false, bottomImage.scale)
bottomImage.draw(in: CGRect(x: 0,y: 0,width: newSize.width,height: newSize.height))
topImage.draw(in: CGRect(x: 0,y: 0,width: newSize.width,height: newSize.height), blendMode:CGBlendMode.normal, alpha:1.0)
let newImage:UIImage = UIGraphicsGetImageFromCurrentImageContext()!
UIGraphicsEndImageContext()
//error line
finalImage.image = newImage.images
}
Run Code Online (Sandbox Code Playgroud) 我有一个UICollectionView带有自定义的水平UICollectionViewCell。每个单元格都有一个UIImageView,显示用户选择的图像。现在,我想做的是在每个单元格的角落添加一个删除按钮(或图像?),当单击它时,它会从数组和单元格本身中删除相应的图像。我有两个问题:
UIViewController?这
像这样的东西:
这是我的自定义单元格类:
class PhotoCell: UICollectionViewCell, UIGestureRecognizerDelegate
{
@IBOutlet weak var cellImage: UIImageView!
override func awakeFromNib()
{
super.awakeFromNib()
setupUI()
}
func setupUI()
{
cellImage.layer.cornerRadius = 5
cellImage.clipsToBounds = true
cellImage.contentMode = .scaleAspectFill
}
}
Run Code Online (Sandbox Code Playgroud)
这是整个View Controller的代码
import UIKit
import SDWebImage
import Photos
import AssetsPickerViewController
import SVProgressHUD
class PhotoVC: UIViewController
{
// MARK: IBOutlets
@IBOutlet weak var collectionView: UICollectionView!
@IBOutlet weak var postButton: UIButton!
@IBOutlet weak var userProfileImage: UIImageView!
@IBOutlet …Run Code Online (Sandbox Code Playgroud) 我正在尝试添加删除按钮作为图像中的子视图。这是我当前的结构:
-> class DesignViewController: UIViewController
|
-> class Sticker: UIImageView, UIGestureRecognizerDelegate
|
-> UI button inside the Sticker
在 Sticker 类中我有:
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
let button2 = UIButton(frame: CGRect(x: 100, y: 100, width: 100, height: 50))
button2.backgroundColor = .red
button2.setTitle("Delete", for: .normal)
button2.tag = 23
button2.addTarget(self, action: #selector(buttonAction), for: .touchUpInside)
self.addSubview(button2)
}
@objc func buttonAction(sender: UIButton!) {
print("Button tapped")
}
Run Code Online (Sandbox Code Playgroud)
没有buttonAction被调用。当我将self.addSubview(button2)线路更改为:
self.superview?.addSubview(button2)
Run Code Online (Sandbox Code Playgroud)
我可以看到buttonAction有人打电话。不过,我想将按钮保留在贴纸视图内,以便当用户移动贴纸时,按钮会作为子视图随之移动。
谁能帮忙并让我知道如何将按钮保留在贴纸视图中?
我想在视图中已存在的所有内容后面设置背景图像。
我试过了 :
override func viewDidLoad() {
super.viewDidLoad()
let backgroundImage = UIImageView(frame: UIScreen.main.bounds)
backgroundImage.image = UIImage(named: "bg-img")
backgroundImage.contentMode = UIViewContentMode.scaleAspectFill
self.view.insertSubview(backgroundImage, at: 0)
}
Run Code Online (Sandbox Code Playgroud)
但这没有用(甚至没有添加img)。因此,我导入了ImageView组件并使用Xcode GUI添加了图像,它确实添加了图像,但它位于一切之上。我已经尝试了几个Stack Overflow答案(这是我从上面获得代码的地方),但是我没有任何运气。
我的文件夹结构如下所示:
我的图像在Assets.xcassets文件夹中。
更新: 我重新启动了Xcode,我的代码正常工作。
注意: ImageView Click事件在Android中可用,我想知道它是否在iOS中可用
我是iOS新手,请考虑,我有相机图像,OnClick它我必须打开我的设备相机,但我正在获取Action的图像功能.附上截图
我的代码:
import UIKit
class AttendanceViewController: UIViewController {
@IBOutlet weak var loginimagebtn: UIImageView!
@IBOutlet weak var loginstatus: UITextView!
@IBOutlet weak var displayloginimg: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
}
func openCamer() {
if UIImagePickerController.isSourceTypeAvailable(
UIImagePickerControllerSourceType.camera) {
let imagePicker = UIImagePickerController()
imagePicker.delegate = self
imagePicker.sourceType = UIImagePickerControllerSourceType.camera
imagePicker.allowsEditing = false
self.present(imagePicker,animated: true,completion : nil)
}
}
// For Toast message below code
func showToast(message : String) {
let toastLabel = UILabel(frame: CGRect(x: self.view.frame.size.width/2 - 75, y: self.view.frame.size.height-100, width: …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个圆形图像,并且已经实现了正确的代码,但是我不知道为什么下面的代码没有四舍五入是我的代码
lazy var profileImage: UIImageView = {
let image = UIImageView()
image.translatesAutoresizingMaskIntoConstraints = false
image.layer.borderColor = UIColor.blue.cgColor
image.layer.borderWidth = 1.5
image.image = UIImage(named: "prof.jpg")
image.contentMode = .scaleAspectFit
image.layer.cornerRadius = image.frame.size.width / 2
image.clipsToBounds = true
return image
}()
Run Code Online (Sandbox Code Playgroud)
我的约束是
fileprivate func layout() {
view.addSubview(profileImage)
NSLayoutConstraint.activate([
profileImage.centerXAnchor.constraint(equalTo: view.centerXAnchor),
profileImage.centerYAnchor.constraint(equalTo: view.centerYAnchor),
profileImage.heightAnchor.constraint(equalToConstant: 200),
profileImage.widthAnchor.constraint(equalToConstant: 200),
])
}
Run Code Online (Sandbox Code Playgroud)
然后将layout()添加到viewDidLoad
请检查此附加代码并缩短屏幕。当我设置容器视图的颜色时它工作正常,但是当我在单元格中添加 UIImage 时它不起作用。我更改了 imageview 内容模式,但它不起作用。
class ViewController: UIViewController {
@IBOutlet weak var segColumn: UISegmentedControl!
@IBOutlet weak var collectionView: UICollectionView!
fileprivate var items: [UIImage] = [ // My images ]
override func viewDidLoad() {
super.viewDidLoad()
self.setup()
}
}
extension ViewController: UICollectionViewDataSource{
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return items.count
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath) as! CollectionViewCell
cell.imgCell.image = items[indexPath.row]
cell.imgCell.contentMode = .scaleAspectFill
cell.contentView.backgroundColor = …Run Code Online (Sandbox Code Playgroud) uiimageview uiimage uicollectionview uicollectionviewlayout swift
uiimageview ×10
ios ×8
swift ×5
uiimage ×3
swift3 ×2
autolayout ×1
blend-mode ×1
cgpoint ×1
swift4 ×1
uibutton ×1
uitableview ×1
xcode ×1