- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 UITableView,它填充了每个单元格的信息、详细信息和图像。我也有它,因此当选择一个单元格时,它会将用户带到详细 View 。我想要完成的是如何区分用户单击单元格或单元格中的图像时的区别。
我想显示一个小 subview ,当用户单击单元格中的图像时,小 subview 将保留在原始框架中,但为用户提供其他可以交互的内容。
我环顾四周,似乎找不到一个简单的解释或从哪里开始。这是通过 facebook 和 twitter 等应用程序完成的,在表格 View 中您可以看到用户的个人资料图片,您可以单击它而不是实际的单元格......
任何信息都会非常感谢!
谢谢@Nekno,我已经开始尝试实现这个方法,如果你不介意澄清或提出你的意见,我有几个问题。
这是我到目前为止所写的内容
// Here we use the new provided setImageWithURL: method to load the web image with
//SDWebImageManager
[cell.imageView setImageWithURL:[NSURL URLWithString:[(Tweet*)[avatarsURL
objectAtIndex:indexPath.row]avatarURL]]
placeholderImage:[UIImage imageNamed:@"avatar.png"]];
//create the button
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button setBackgroundImage:[NSURL URLWithString:[(Tweet*)[avatarsURL
objectAtIndex:indexPath.row]avatarURL]] forState:UIControlStateNormal];
//the button should be as big as the image in tableView
[button setFrame:CGRectMake(10, 10, 45, 45)];
//set the type of action for the button
[button addTarget:self action:@selector(imageSubViewAction:)
forControlEvents:UIControlEventTouchUpInside];
//more stuff
return cell }
然后我使用我在上面的 @selector 中指定的操作
-(IBAction)imageSubViewAction:(id)sender{
[UIView beginAnimations:@"animateView" context:nil];
[UIView setAnimationDuration:0.5];
CGRect viewFrame = [subView frame];
viewFrame.origin.x += -300;
subView.frame = viewFrame;
subView.alpha = 1.0;
[self.view addSubview:subView];
[UIView commitAnimations];
所以我知道我必须添加一个操作来关闭 subview ,但首先要做的事情。
到目前为止,这似乎对细胞没有任何影响,我不确定下一步要采取什么步骤来使其发挥作用。
手势方法是否完全禁用了didselectindexrow的功能?因为我想两者兼得。
似乎这种方法只需在单元格内添加一个按钮并为该按钮提供一个操作就应该有效,但我有点迷失了在哪里继续我的旅程。
再次感谢我非常感谢您的帮助!
}
最佳答案
我认为最简单的方法是添加 UIButton 作为 subview ,并通过 Interface Builder 或创建 UIImage 添加图像作为 UIButton 的背景 View 。
然后,您可以将事件处理程序连接到 Touch Up Inside socket ,以处理按钮点击。
使用 UIButton,UITableView 单元格选择不应触发。如果由于某种原因您发现当用户触摸按钮时表格单元格被选中,您可以使用 UIImageView 而不是 UIButton,然后向 UIImageView 添加一个手势识别器来处理图像上的触摸并取消表格单元格选择。
要将手势识别器添加到 UIImageView 并取消 UITableView 的触摸:
注意:imageView 是引用 UIImageView 的局部变量。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
//...
// by default, UITapGestureRecognizer will recognize just a tap.
UITapGestureRecognizer *gestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleGesture:)];
gestureRecognizer.cancelsTouchesInView = YES; // cancels table view cell selection
[imageView addGestureRecognizer:gestureRecognizer];
[gestureRecognizer release];
//...
}
- (void)handleGesture:(UIGestureRecognizer *)gestureRecognizer {
// get the imageView that was tapped
UIImageView* imageView = gestureRecognizer.view;
// do something else
}
关于iphone - 在 UITableView 中选择 UIImage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6259260/
我是一名优秀的程序员,十分优秀!