小编ozg*_*gur的帖子

使用核心图形在UIImage上绘制矩形

我正在尝试使用Core Graphics在UIImage的中心放置一个矩形,大致如下所示:

在此输入图像描述

到目前为止这是我的代码:

func drawRectangleOnImage(image: UIImage) -> UIImage {
    let imageSize = image.size
    let scale: CGFloat = 0
    UIGraphicsBeginImageContextWithOptions(imageSize, false, scale)
    let context = UIGraphicsGetCurrentContext()

    let rectangle = CGRect(x: 0, y: (imageSize.height/2) - 30, width: imageSize.width, height: 60)

    CGContextSetFillColorWithColor(context, UIColor.blackColor().CGColor)
    CGContextSetStrokeColorWithColor(context, UIColor.redColor().CGColor)
    CGContextSetLineWidth(context, 5)
    CGContextAddRect(context, rectangle)
    CGContextDrawPath(context, .Fill)

    let newImage = UIGraphicsGetImageFromCurrentImageContext()
    UIGraphicsEndImageContext()
    return newImage
}
Run Code Online (Sandbox Code Playgroud)

我感觉好像它没有画在我发送的图像之上,它正在创造一个新的图像.整个东西变成红色,矩形变黑.我想要黑色矩形,其余部分仍应与图像相同.

我究竟做错了什么?

core-graphics uiimage ios swift

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

动态创建类python的实例

我是 python 新手,我正在尝试在类中动态创建新实例。所以让我给你举个例子,如果我有一个这样的类:

class Person(object):
    def __init__(self, name, age, job):
        self.name = name
        self.age = age
        self.job = job
Run Code Online (Sandbox Code Playgroud)

据我所知,对于我必须插入的每个新实例,我必须声明一个变量并将其附加到 person 对象,如下所示:

variable = Person(name, age, job)
Run Code Online (Sandbox Code Playgroud)

有没有办法可以动态地做到这一点?假设我有一本这样的字典:

persons_database = {
'id' : ['name', age, 'job'], .....
}
Run Code Online (Sandbox Code Playgroud)

我可以创建一段代码来迭代这个数据库并在Person类中自动创建新实例吗?

python oop class

6
推荐指数
1
解决办法
5551
查看次数

UICollectionView 标题视图类似于表视图标题(而不是节标题)

是否可以像 UITableView headerView 一样创建 UICollectionView 标题视图?我的意思是整个集合视图的标题视图,而不是每个部分的重复视图。就像图1是我想要的,图现在我已经完成了。

图一

图二

uicollectionview swift

6
推荐指数
1
解决办法
2958
查看次数

从Python dict中删除多个键

有没有一种有效的快捷方法可以从python字典中一次删除多个键?

例如;

x = {'a': 5, 'b': 2, 'c': 3}
x.pop('a', 'b')
print x
{'c': 3}
Run Code Online (Sandbox Code Playgroud)

python dictionary

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

Monkey在模块中修补功能以进行单元测试

我在调用从另一个模块导入的另一个方法的模块中有以下方法:

def imported_function():
    do_unnecessary_things_for_unittest()
Run Code Online (Sandbox Code Playgroud)

需要测试的实际方法,导入并使用上述功能:

from somewhere import imported_function

def function_to_be_tested():
    imported_function()
    do_something_more()
    return 42
Run Code Online (Sandbox Code Playgroud)

内部呼叫和内部相关计算imported_function并不重要,他们是不是我想要测试,所以我只是想跳过他们,而测试的实际功能是什么function_to_be_tested.

因此,我试图在测试方法内部的某个地方修补模块,但没有运气.

def test_function_to_be_tested(self):
    import somewhere
    somewhere.__dict__['imported_function'] = lambda : True
Run Code Online (Sandbox Code Playgroud)

问题是,如何在测试时修补模块的方法,以便在测试阶段不会调用它?

python unit-testing monkeypatching

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

删除 PostgreSQL Flask 中带有外键的行

我想从我的模型中删除一行,该行具有带有 postgresql 的foreignkey。但我收到了这个错误:

IntegrityError:(IntegrityError)表“users”上的更新或删除违反了表“users”上的外键约束“users_bestfriend_id_fkey”详细信息:键(id)=(3)仍然从表“users”中引用。'从用户中删除,其中 users.id = %(id)s' {'id': 3}

我认为要解决这个问题,我应该使用 CASCADE,但不知道如何在我的模型中使用它,所以如果你帮忙的话,谢谢:)


模型.py

friends = db.Table('friends',
db.Column('user_id', db.Integer, db.ForeignKey('users.id')),
db.Column('friend_id', db.Integer, db.ForeignKey('users.id'))
)

class Users(db.Model):
   id = db.Column(db.Integer, primary_key = True)
   name = db.Column(db.String(50), index=True)
   age= db.Column(db.Integer )
   email = db.Column(db.String(50),index=True, unique= True)
   bestfriend_id = db.Column(db.Integer, db.ForeignKey('users.id'))


   is_bestfriend = db.relationship( 'Users', uselist=False, remote_side=[id], post_update=True)
Run Code Online (Sandbox Code Playgroud)

视图.py

# delete user profile
@layout.route('/delete/<int:id>')
@login_required
def delete(id):
  user = Users.query.get_or_404(id)
  if g.user.id == user.id:
           flash('You are not allow to delete yourself.')

  else: …
Run Code Online (Sandbox Code Playgroud)

python database postgresql flask flask-migrate

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

如何从时区获取UTC偏移值?

在我的 Django 项目中,我有一个表单(forms.py),它实现了 pytz 来获取当前时区,如下所示:

tz = timezone.get_current_timezone()
Run Code Online (Sandbox Code Playgroud)

我已将此值作为初始值传递给表单字段,如下所示:

timezone = forms.CharField(label='Time Zone', initial=tznow)
Run Code Online (Sandbox Code Playgroud)

这为该字段提供了当前时区的默认值,在我的情况下,它恰好是Asia/Calcutta

现在我想找到给定时区的 UTC 偏移值,在这种情况下亚洲/加尔各答+5:30

我也尝试了 tzinfo() 方法,但找不到预期的结果。有人可以指导我完成这个吗?

django python-2.7

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

获取python中最重要的数字

说我有清单 [34523, 55, 65, 2]

获得[3,5,6,2]最有效数字的最有效方法是什么.如果可能的话,不改变每个改变str()

python integer list significant-digits

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

IOS:UIImageView 设置边框白色半径和阴影

这是我设置边框、阴影和角的代码

// set border
[self.avatarImageView.layer setBorderColor: [[UIColor whiteColor] CGColor]];
[self.avatarImageView.layer setBorderWidth: 2.0];

// set shadow
[self.avatarImageView.layer setShadowOffset:CGSizeZero];
[self.avatarImageView.layer setShadowOpacity:1.0];
self.avatarImageView.clipsToBounds = NO;

// set corner
self.avatarImageView.layer.cornerRadius = 10.0;
self.avatarImageView.layer.masksToBounds = YES;
Run Code Online (Sandbox Code Playgroud)

如果我只使用set borderand的代码set corner,它就像这样工作得很好

在此处输入图片说明

但是如果我添加代码set corner,我会得到这样的结果(边框和角半径有效,但阴影消失了)

在此处输入图片说明

然而,如果它单独存在,则设置角落的代码工作完美。请指导我该怎么做。任何帮助将不胜感激

更新
关注@ozgur 答案。在我的代码中添加 2 行,它会提供非常漂亮的视图,但阴影会小一点

self.avatarImageView.layer.shouldRasterize = YES;
self.avatarImageView.layer.shadowPath = [UIBezierPath bezierPathWithRoundedRect:self.avatarImageView.bounds cornerRadius:10].CGPath;
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

objective-c uiimageview ios

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

使用 TestFlight 版本更新应用程序时,“identifierForVendor.uuidString”是否会更改?

问题值:identifierForVendor.uuidString

\n\n

根据苹果文档:

\n\n
\n

当应用程序(或来自同一供应商的另一个应用程序)安装在 iOS 设备上时,此属性中的值保持不变。当用户从设备中删除所有供应商\xe2\x80\x99s 应用程序并随后重新安装其中一个或多个应用程序时,该值会发生变化。当使用 Xcode 安装测试版本或使用临时分发在设备上安装应用程序时,该值也可能会更改。因此,如果您的应用程序在任何地方存储此属性的值,您应该妥善处理标识符更改的情况。

\n
\n\n

设想:

\n\n
    \n
  1. 我的一位用户在他的设备上安装了 TestFlight 版本 v1.0.0(0)。\n
  2. \n
  3. 他在同一设备上使用 v1.0.0(1) 更新了版本。
  4. \n
\n\n

在这里,这个值UIDevice.current.identifierForVendor!.uuidString发生了变化。这对我们来说非常重要,因为我们有一个与该值相关联的应用程序更新逻辑。我们假设当用户从 TestFlight/AppStore 更新应用程序时该值不会改变,因为两者都是使用 AppStore 分发配置文件构建的。

\n\n

注意:用户没有删除/卸载该应用程序。他刚刚将版本从 v1.0.0(0) 更新到 v1.0.0(1)。

\n\n

请让我知道你的想法。

\n

ios testflight

5
推荐指数
0
解决办法
2425
查看次数