小编swi*_*ode的帖子

UITableView中的圆形UIImageView没有性能损失?

我的UIImageView每个UITableView单元格上都有一个显示远程图像(使用SDWebImage)的图像.我已经QuartzCore为图像视图做了一些图层样式,如下所示:

UIImageView *itemImageView = (UIImageView *)[cell viewWithTag:100];
    itemImageView.layer.borderWidth = 1.0f;
    itemImageView.layer.borderColor = [UIColor concreteColor].CGColor;
    itemImageView.layer.masksToBounds = NO;
    itemImageView.clipsToBounds = YES;
Run Code Online (Sandbox Code Playgroud)

所以现在我有一个50x50的正方形,有一个微弱的灰色边框,但我想把它做成圆形而不是方形.该应用程序Hemoglobe在表视图中使用圆形图像,这就是我想要实现的效果.但是,我不想使用cornerRadius,因为这会降低我的滚动FPS.

这里Hemoglobe显示循环UIImageViews:

在此输入图像描述

有没有办法达到这个效果?谢谢.

objective-c uitableview uiimageview ios

81
推荐指数
5
解决办法
6万
查看次数

选择时如何更改UITableViewCell的颜色?

我有这样的菜单:

菜单

每个单元格的正常(未选定)状态是图像,所选状态也是图像(看起来像默认的蓝色图像).但是,我想添加一个额外的第三个图像,这样当用户选择一个单元格时,它会在变为蓝色(选中)之前短暂更改为第三个颜色.

这是我的代码:

(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    [tableView setBackgroundColor:[UIColor clearColor]];

    NSString *cellIdentifier = @"MenuItemCell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle  reuseIdentifier:cellIdentifier];
    }

    UIImage *cellBackgroundNormal = [UIImage imageNamed:@"cell_menu_normal"];
    UIImage *cellBackgroundSelected = [UIImage imageNamed:@"cell_menu_selected"];
    UIImageView *cellBackgroundView = [[UIImageView alloc] initWithImage:cellBackgroundNormal];
    UIImageView *cellBackgroundSelectedView = [[UIImageView alloc] initWithImage:cellBackgroundSelected];
    cell.backgroundView = cellBackgroundView;
    cell.selectedBackgroundView = cellBackgroundSelectedView;

    [cell.textLabel setBackgroundColor:[UIColor clearColor]];
    [cell.textLabel setTextColor:[UIColor whiteColor]];
    [cell.textLabel setFont:[UIFont boldSystemFontOfSize:17.0]];
    cell.textLabel.text = [self.menuItems objectAtIndex:indexPath.row];

    return cell;
} 
Run Code Online (Sandbox Code Playgroud)

如你所见,我现在只有两个州.我不知道如何cell.hoveredBackgroundView为第三张图片介绍某种形式.如果有人能帮我实现这一点,我真的很感激.

colors objective-c uitableview ios

46
推荐指数
6
解决办法
9万
查看次数

在UITableViewCell中的UIImageView上使用cornerRadius

我使用的是UIImageView我的每个中UITableViewCells,为缩略图.我的代码用来SDWebImage从我的后端异步抓取这些图像并加载它们,然后缓存它们.这工作正常.

UIImageView是一个50x50的正方形,在Interface Builder中创建.它的背景是不透明的,白色(与我的UITableViewCell背景颜色相同,用于表现).但是,我想使用光滑的角落来获得更好的美感.如果我这样做:

UIImageView *itemImageView = (UIImageView *)[cell viewWithTag:100];
    itemImageView.layer.cornerRadius = 2.5f;
    itemImageView.layer.masksToBounds = NO;
    itemImageView.clipsToBounds = YES;
Run Code Online (Sandbox Code Playgroud)

我的tableview立即下降5-6帧,在快速滚动期间约为56 FPS(这是可以的),但是当我拖动并拉动刷新控件时,它会稍微滞后并下降到40 FPS左右.如果我删除该cornerRadius行,一切都很好,没有滞后.这已在使用Instruments的iPod touch 5G上进行了测试.

有没有其他方法可以让UIImageView我的细胞四舍五入并且不受性能影响?我已经优化了我cellForRowAtIndexPath,我得到56-59 FPS而快速滚动没有cornerRadius.

objective-c uitableview quartz-graphics uiimageview

14
推荐指数
3
解决办法
9290
查看次数

OpenSans字体在iOS模拟器中不起作用

我想在a上使用OpenSans字体UILabel,但它没有出现在iOS模拟器中.出现的只是默认的系统字体.我有:

1)添加文件到项目+选择复制到app文件夹.

2)添加到Info.plist.

info.plist中

3)Xcode自动将所有字体添加到我的构建阶段文件夹中.

4)清理项目+再次构建它.

它仍然没有显示出来!在我的代码中,我有这个:

self.itemPrice = [[UILabel alloc] initWithFrame:CGRectMake(230.0, 30.0, 75.0, 30.0)];
        self.itemPrice.adjustsFontSizeToFitWidth = YES;
        self.itemPrice.font = [UIFont fontWithName:@"OpenSans-ExtraBold" size:13.0f];
        self.itemPrice.textAlignment = NSTextAlignmentCenter;
        self.itemPrice.text = [NSString stringWithFormat:@"%@", [Formatters formatPrice:self.item.price]];
        [self.slidingDetailScrollView addSubview:self.itemPrice];
Run Code Online (Sandbox Code Playgroud)

有谁知道是什么导致了这个奇怪的错误?

xcode fonts objective-c uilabel

11
推荐指数
1
解决办法
1万
查看次数

根据UIView/CGRect的大小将图像裁剪为正方形

我有一个AVCaptureSession的实现,我的目标是让用户拍照并只保存红色方框边框内的图像部分,如下所示:

UIViewController与AVCaptureSession的实现

AVCaptureSession previewLayer(相机)从(0,0)(左上角)跨越到相机控制条的底部(包含快门的视图上方的条形图).我的导航栏和控制栏是半透明的,因此相机可以显示.

我正在使用[captureSession setSessionPreset:AVCaptureSessionPresetPhoto];以确保保存到相机胶卷的原始图像就像Apple的相机一样.

用户将能够以纵向,左右横向拍摄照片,因此裁剪方法必须考虑到这一点.

到目前为止,我已尝试使用此代码裁剪原始图像:

DDLogVerbose(@"%@: Image crop rect: (%f, %f, %f, %f)", THIS_FILE, self.imageCropRect.origin.x, self.imageCropRect.origin.y, self.imageCropRect.size.width, self.imageCropRect.size.height);

// Create new image context (retina safe)
UIGraphicsBeginImageContextWithOptions(CGSizeMake(self.imageCropRect.size.width, self.imageCropRect.size.width), NO, 0.0);

// Create rect for image
CGRect rect = self.imageCropRect;

// Draw the image into the rect
[self.captureManager.stillImage drawInRect:rect];

// Saving the image, ending image context
UIImage *croppedImage = UIGraphicsGetImageFromCurrentImageContext();
Run Code Online (Sandbox Code Playgroud)

然而,当我看到相机胶卷中的裁剪图像时,似乎它刚刚压缩了原始图像,而不是像我想的那样丢弃图像的顶部和底部.它还会在"裁剪"图像的顶部产生53像素的空白区域,这可能是因为我的y位置CGRect.

这是我的日志输出CGRect:

 Image crop rect: (0.000000, 53.000000, 320.000000, 322.000000)
Run Code Online (Sandbox Code Playgroud)

这也描述了superview中红色边框视图的框架.

我有什么关键吗? …

crop uiimage image-resizing ios cgrect

10
推荐指数
2
解决办法
9985
查看次数

弹出视图控制器后UITableViewController奇怪的行为

UITableView有一堆重复使用的细胞,当我对其中一个水龙头,它带我到另一个视图控制器(通过推送赛格瑞),显示该单元格的细节(我们说这是一个项目,所以它会显示有关项目的详细信息 - 名称,价格,图像等......).当我弹出那个视图控制器时(通过点击后退按钮),UITableView有一个奇怪的行为:

a)如果它一直滚动到底部,它将自动滚动(大约50点),使最后一个单元格几乎不可见,所以我必须再次向下滚动.我的牢房全高60分.

b)滚动条总是显示然后消失,表示某些东西正在移动UITableView(虽然如果没有滚动到底部,内容将不会自动移动).

这发生在UITableView我的应用程序中的多个.我没有强制在viewWillAppear中重新加载表视图,所以我不明白发生了什么.从服务器加载后,我的内容是静态的(除非用户更改它,然后执行重新加载).但只是显示项目的详细信息并弹出该VC不会改变表格视图中的任何内容.

编辑:好的,我已经弄清楚问题是什么:我UIToolbar在推动那个segue时隐藏了一个.如果我把它总是可见的(我不希望),它仍然显示滚动条在我的表视图弹出,但如果在最后几排不滚动表视图时动画.

scroll objective-c uitableview ios

9
推荐指数
2
解决办法
5689
查看次数

PHP安全漏洞 - 列出远程PHP文件的内容?

我正在尝试利用在VM内部运行的示例网站中的一些Web漏洞(它不在网络上 - 仅用于教育目的).我有一个名为php的文件setupreset.php,其中包含有关用于设置网站的MySQL配置,设置和密码的信息.这与其他php文件(索引,产品,论坛等)位于同一目录中.

这是index.php的代码,供参考:

<?php
include ("includes/header.php");
// Grab inputs
$page = $_GET[page];
if ($page=="") {
    include("home.html"); 
} else { include ($page . '.php'); } 
include ("includes/footer.php");
?>
Run Code Online (Sandbox Code Playgroud)

主要目标是列出setupresetPHP文件的内容,或以某种方式下载它.如果我导航到这个文件:http://10.211.55.5/index.php?page=setupreset它会被执行,但PHP代码自然不会显示,因为它由PHP解释器解析.

现在,该网站使用PHP include,因此URL如下所示:http://10.211.55.5/index.php?page=products.这似乎是很容易受到远程文件包含,在那里我可以简单地指向另一个PHP页面,如http://10.211.55.5/index.php?page=http://badwebsite.com/myevilscript.phpallow_url_includeoff,不能改变,所以这是不行的(这个我试过).但是,allow_url_fopen很可能(因为它默认打开),所以我的问题如下:是否可以上传PHP文件或一些列出setupreset.php使用此类漏洞利用内容的脚本?

php security exploit ssi

7
推荐指数
1
解决办法
5万
查看次数

JOptionPane在不同的行上有多个输入

我想创建一个JOptionPane允许用户选择要连接的IP地址和端口的.它的结构应如此,

IP地址:[textfield here]

港口:[textfield here]

取消确定

标签应该左对齐,文本字段也应该左对齐.我无法在这里对故事板进行真正的建模,但基本上文本字段不应该错位,即使标签和文本字段之间有空格也是如此.

每个标签和文本字段对应位于单独的行上,取消确定按钮应与文本框下方的右侧对齐.

在代码中有没有办法做到这一点?

java swing joptionpane layout-manager

5
推荐指数
1
解决办法
2万
查看次数

JOptionPane.showMessageDialog等到单击确定?

这可能是一个非常简单的事情,我忽略了,但我似乎无法弄明白.

我有以下更新JTable的方法:

class TableModel extends AbstractTableModel {    
        public void updateTable() {
            try {
                // update table here
             ...
    } catch (NullPointerException npe) {
                isOpenDialog = true;
                JOptionPane.showMessageDialog(null, "No active shares found on this IP!");
                isOpenDialog = false;
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

但是,我不希望isOpenDialog在按下消息对话框上的OK按钮之前将boolean设置为false,因为如果用户按下enter键,它将激活KeyListener文本字段上的事件并且如果设置了它将再次触发整个代码块到false.

KeyListener代码的一部分如下所示:

public class KeyReleased implements KeyListener {
        ...

    @Override
    public void keyReleased(KeyEvent ke) {
        if(txtIPField.getText().matches(IPADDRESS_PATTERN)) {
            validIP = true;
        } else {
            validIP = false;
        }

        if (ke.getKeyCode() == KeyEvent.VK_ENTER) {
            if (validIP …
Run Code Online (Sandbox Code Playgroud)

java swing jtable keylistener joptionpane

5
推荐指数
2
解决办法
4万
查看次数

突出显示(点击)时如何使UIImageView变暗?

我有一个显示图片的UIImageView.当点击并保持时,只要用户将手指放在图像视图上,我就希望它变暗.基本上,我希望它像UIButton一样.

我目前使用UIGestureRecognizer执行此操作:

- (void)viewDidLoad
{
    [super viewDidLoad];

    UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc]
                                         initWithTarget:self
                                         action:@selector(pictureViewTapped)];
    singleTap.numberOfTapsRequired = 1;
    singleTap.numberOfTouchesRequired = 1;
    [self.pictureImageView addGestureRecognizer:singleTap];
    [self.pictureImageView setUserInteractionEnabled:YES];
}
Run Code Online (Sandbox Code Playgroud)

在我pictureViewTapped,我有这个(现在):

- (void)pictureViewTapped {
    NSLog(@"Picture view was tapped!");
}
Run Code Online (Sandbox Code Playgroud)

如何使UIImageView变暗?任何帮助表示赞赏.

uiviewcontroller uiimageview uigesturerecognizer ios

5
推荐指数
2
解决办法
1万
查看次数